From 935a746696b4dd620cc806620099ecf4269a4452 Mon Sep 17 00:00:00 2001 From: Vishakh Vishakh Date: Wed, 21 Oct 2026 02:33:24 +0000 Subject: [PATCH 01/16] Add native Android and iOS clients backed by shared Rust core --- .gitattributes | 1 + .github/workflows/native-clients.yml | 54 + .github/workflows/pr-build.yml | 38 + .gitignore | 16 + Cargo.lock | 1223 ++ Cargo.toml | 14 + README.md | 4 +- app/api/studies/route.ts | 7 + app/components/MenuDropdowns.tsx | 3 + app/components/UserDataUpload.tsx | 48 +- app/mobile-auth/mobile-auth.tsx | 53 + app/mobile-auth/page.tsx | 7 + app/portable-vault/page.tsx | 65 + apps/android/app/build.gradle.kts | 47 + .../com/monadicdna/explorer/ExplorerUiTest.kt | 17 + .../monadicdna/explorer/PublicSampleTest.kt | 77 + .../debug/res/xml/network_security_config.xml | 10 + apps/android/app/src/main/AndroidManifest.xml | 15 + .../main/java/com/monadicdna/explorer/Core.kt | 25 + .../com/monadicdna/explorer/DeviceStore.kt | 40 + .../com/monadicdna/explorer/ExplorerModel.kt | 258 + .../com/monadicdna/explorer/MainActivity.kt | 212 + .../app/src/main/res/drawable/ic_explorer.xml | 5 + .../main/res/xml/data_extraction_rules.xml | 17 + .../main/res/xml/network_security_config.xml | 4 + .../com/monadicdna/explorer/CoreNativeTest.kt | 18 + .../explorer/PublicSampleCoreTest.kt | 31 + apps/android/build.gradle.kts | 5 + apps/android/gradle.properties | 4 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes .../gradle/wrapper/gradle-wrapper.properties | 9 + apps/android/gradlew | 252 + apps/android/gradlew.bat | 94 + apps/android/settings.gradle.kts | 4 + apps/ios/Explorer/Core.swift | 44 + apps/ios/Explorer/DeviceStore.swift | 27 + apps/ios/Explorer/ExplorerApp.swift | 230 + apps/ios/Explorer/ExplorerStore.swift | 253 + apps/ios/Explorer/Info.plist | 15 + apps/ios/ExplorerTests/CoreTests.swift | 19 + .../ios/ExplorerTests/PublicSampleTests.swift | 48 + apps/ios/project.yml | 48 + crates/explorer-core/Cargo.toml | 27 + crates/explorer-core/data/profile-fields.json | 12 + crates/explorer-core/data/report-rules.json | 286 + crates/explorer-core/src/crypto.rs | 132 + crates/explorer-core/src/files.rs | 47 + crates/explorer-core/src/genotype.rs | 352 + crates/explorer-core/src/lib.rs | 159 + crates/explorer-core/src/llm.rs | 55 + crates/explorer-core/src/nilai.rs | 151 + crates/explorer-core/src/preview.rs | 169 + crates/explorer-core/src/quality.rs | 220 + crates/explorer-core/src/reports.rs | 627 + crates/explorer-core/src/results.rs | 181 + crates/explorer-core/src/risk.rs | 115 + crates/explorer-core/src/session.rs | 86 + crates/explorer-core/tests/contract.rs | 92 + crates/explorer-core/uniffi.toml | 7 + docs/clients.md | 95 + docs/public-sample-validation.md | 65 + eslint.config.mjs | 5 + lib/core.ts | 31 + lib/encryption-utils.ts | 50 +- lib/evidence-labels.ts | 80 +- lib/file-hash.ts | 6 +- lib/genotype-parser.ts | 495 +- lib/health-report-service.ts | 238 +- lib/healthspan-report-service.ts | 219 +- lib/llm-config.ts | 106 +- lib/overview-report-analyzer.ts | 191 +- lib/parsing.ts | 114 +- lib/preview-insights.ts | 220 +- lib/prime-verification.ts | 151 +- lib/results-manager.ts | 120 +- lib/risk-calculator.ts | 228 +- lib/run-all-onboarding.ts | 33 +- lib/snp-utils.ts | 7 +- lib/top-traits-report-service.ts | 126 +- package-lock.json | 30 + package.json | 13 +- rust-toolchain.toml | 4 + scripts/build-core.mjs | 16 + scripts/build-native.mjs | 41 + scripts/prepare-public-sample.py | 96 + tests/core.test.mjs | 147 + tests/e2e/public-sample-api.mjs | 38 + tests/e2e/public-sample-browser.mjs | 50 + tests/e2e/public-sample-web.mjs | 181 + tests/fixtures/core.json | 469 + tests/fixtures/public-sample-studies.json | 15002 ++++++++++++++++ tests/fixtures/reports.json | 3705 ++++ tools/bindgen/Cargo.toml | 8 + tools/bindgen/src/main.rs | 3 + 94 files changed, 26135 insertions(+), 2327 deletions(-) create mode 100644 .gitattributes create mode 100644 .github/workflows/native-clients.yml create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 app/mobile-auth/mobile-auth.tsx create mode 100644 app/mobile-auth/page.tsx create mode 100644 app/portable-vault/page.tsx create mode 100644 apps/android/app/build.gradle.kts create mode 100644 apps/android/app/src/androidTest/java/com/monadicdna/explorer/ExplorerUiTest.kt create mode 100644 apps/android/app/src/androidTest/java/com/monadicdna/explorer/PublicSampleTest.kt create mode 100644 apps/android/app/src/debug/res/xml/network_security_config.xml create mode 100644 apps/android/app/src/main/AndroidManifest.xml create mode 100644 apps/android/app/src/main/java/com/monadicdna/explorer/Core.kt create mode 100644 apps/android/app/src/main/java/com/monadicdna/explorer/DeviceStore.kt create mode 100644 apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt create mode 100644 apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt create mode 100644 apps/android/app/src/main/res/drawable/ic_explorer.xml create mode 100644 apps/android/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 apps/android/app/src/main/res/xml/network_security_config.xml create mode 100644 apps/android/app/src/test/java/com/monadicdna/explorer/CoreNativeTest.kt create mode 100644 apps/android/app/src/test/java/com/monadicdna/explorer/PublicSampleCoreTest.kt create mode 100644 apps/android/build.gradle.kts create mode 100644 apps/android/gradle.properties create mode 100644 apps/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 apps/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 apps/android/gradlew create mode 100644 apps/android/gradlew.bat create mode 100644 apps/android/settings.gradle.kts create mode 100644 apps/ios/Explorer/Core.swift create mode 100644 apps/ios/Explorer/DeviceStore.swift create mode 100644 apps/ios/Explorer/ExplorerApp.swift create mode 100644 apps/ios/Explorer/ExplorerStore.swift create mode 100644 apps/ios/Explorer/Info.plist create mode 100644 apps/ios/ExplorerTests/CoreTests.swift create mode 100644 apps/ios/ExplorerTests/PublicSampleTests.swift create mode 100644 apps/ios/project.yml create mode 100644 crates/explorer-core/Cargo.toml create mode 100644 crates/explorer-core/data/profile-fields.json create mode 100644 crates/explorer-core/data/report-rules.json create mode 100644 crates/explorer-core/src/crypto.rs create mode 100644 crates/explorer-core/src/files.rs create mode 100644 crates/explorer-core/src/genotype.rs create mode 100644 crates/explorer-core/src/lib.rs create mode 100644 crates/explorer-core/src/llm.rs create mode 100644 crates/explorer-core/src/nilai.rs create mode 100644 crates/explorer-core/src/preview.rs create mode 100644 crates/explorer-core/src/quality.rs create mode 100644 crates/explorer-core/src/reports.rs create mode 100644 crates/explorer-core/src/results.rs create mode 100644 crates/explorer-core/src/risk.rs create mode 100644 crates/explorer-core/src/session.rs create mode 100644 crates/explorer-core/tests/contract.rs create mode 100644 crates/explorer-core/uniffi.toml create mode 100644 docs/clients.md create mode 100644 docs/public-sample-validation.md create mode 100644 lib/core.ts create mode 100644 rust-toolchain.toml create mode 100644 scripts/build-core.mjs create mode 100644 scripts/build-native.mjs create mode 100644 scripts/prepare-public-sample.py create mode 100644 tests/core.test.mjs create mode 100644 tests/e2e/public-sample-api.mjs create mode 100644 tests/e2e/public-sample-browser.mjs create mode 100644 tests/e2e/public-sample-web.mjs create mode 100644 tests/fixtures/core.json create mode 100644 tests/fixtures/public-sample-studies.json create mode 100644 tests/fixtures/reports.json create mode 100644 tools/bindgen/Cargo.toml create mode 100644 tools/bindgen/src/main.rs diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..2bbff47 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +apps/android/gradlew.bat text eol=crlf diff --git a/.github/workflows/native-clients.yml b/.github/workflows/native-clients.yml new file mode 100644 index 0000000..09e1e96 --- /dev/null +++ b/.github/workflows/native-clients.yml @@ -0,0 +1,54 @@ +name: Native clients + +on: + pull_request: + workflow_dispatch: + +jobs: + android: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version: 24 + - uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: 21 + - uses: android-actions/setup-android@v3 + - run: sdkmanager 'platforms;android-35' 'build-tools;35.0.0' 'ndk;27.2.12479018' + - run: python3 scripts/prepare-public-sample.py + - run: node scripts/build-native.mjs android arm64-v8a + - run: apps/android/gradlew -p apps/android assembleDebug testDebugUnitTest lintDebug --no-daemon + - uses: actions/upload-artifact@v7 + with: + name: explorer-android-debug + path: apps/android/app/build/outputs/apk/debug/app-debug.apk + - run: node scripts/build-native.mjs android x86_64 + - name: Enable emulator KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + - uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 35 + arch: x86_64 + script: apps/android/gradlew -p apps/android -PexplorerAbis=x86_64 connectedDebugAndroidTest --no-daemon + + ios: + runs-on: macos-15 + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version: 24 + - run: brew install xcodegen + - run: python3 scripts/prepare-public-sample.py + - run: node scripts/build-native.mjs ios simulator + - name: Run native binding tests in iOS Simulator + shell: bash + run: | + simulator_id=$(xcrun simctl list devices available -j | python3 -c 'import json,sys; d=json.load(sys.stdin); print(next(v["udid"] for devices in d["devices"].values() for v in devices if v["name"].startswith("iPhone")))') + xcodebuild -project apps/ios/Explorer.xcodeproj -scheme Explorer -destination "platform=iOS Simulator,id=$simulator_id" -derivedDataPath apps/ios/build test CODE_SIGNING_ALLOWED=NO diff --git a/.github/workflows/pr-build.yml b/.github/workflows/pr-build.yml index 0aa3caa..c04517b 100644 --- a/.github/workflows/pr-build.yml +++ b/.github/workflows/pr-build.yml @@ -27,6 +27,14 @@ jobs: - name: Install dependencies run: npm ci + - name: Install shared core toolchain + run: rustup show active-toolchain + + - name: Test Rust and WASM contracts + run: | + npm run core:test + npm test + - name: Run linter run: npm run lint @@ -38,6 +46,36 @@ jobs: env: NODE_ENV: production + - name: Prepare full public 23andMe sample and browser + run: | + npm run test:public-sample:prepare + npx playwright install --with-deps chromium + + - name: Verify public sample import, scores, export and portable vault in Chromium + run: | + node node_modules/next/dist/bin/next start > /tmp/explorer-public-sample-server.log 2>&1 & + app_pid=$! + trap 'kill "$app_pid"' EXIT + node --input-type=module <<'JS' + let ready=false; + for(let attempt=0;attempt<60;attempt++) { + try { if((await fetch('http://127.0.0.1:3000')).ok){ready=true;break;} } catch {} + await new Promise(resolve=>setTimeout(resolve,500)); + } + if(!ready)throw new Error('Production server did not start'); + JS + npm run test:public-sample:web + + - name: Upload public sample browser evidence + uses: actions/upload-artifact@v7 + with: + name: public-sample-browser-evidence + include-hidden-files: true + path: | + .test-data/public-sample/*.png + .test-data/public-sample/web-results.tsv + retention-days: 7 + - name: Upload build artifacts if: matrix.node-version == '24.x' uses: actions/upload-artifact@v7 diff --git a/.gitignore b/.gitignore index b5847ff..aaf81fd 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,19 @@ yarn-error.log* /CLAUDE.md /scripts/ga-performance.env /.junie/ + +# Shared Rust and generated native bindings +/target/ +/lib/generated/ +/apps/android/.gradle/ +/apps/android/local.properties +/apps/android/**/build/ +/apps/android/app/src/main/jniLibs/ +/apps/android/app/src/main/java/com/monadicdna/explorer/core/ +/apps/ios/Generated/ +/apps/ios/build/ +/apps/ios/*.xcodeproj/ +/apps/ios/*.xcworkspace/ +/.test-data/ +/apps/ios/TestData/ +/apps/android/app/src/androidTest/assets/public-sample/ diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..2b67f9b --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1223 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + +[[package]] +name = "askama" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4744ed2eef2645831b441d8f5459689ade2ab27c854488fbab1fbe94fce1a7" +dependencies = [ + "askama_derive", + "itoa", + "percent-encoding", + "serde", + "serde_json", +] + +[[package]] +name = "askama_derive" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d661e0f57be36a5c14c48f78d09011e67e0cb618f269cca9f2fd8d15b68c46ac" +dependencies = [ + "askama_parser", + "basic-toml", + "memchr", + "proc-macro2", + "quote", + "rustc-hash", + "serde", + "serde_derive", + "syn 2.0.119", +] + +[[package]] +name = "askama_parser" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf315ce6524c857bb129ff794935cf6d42c82a6cff60526fe2a63593de4d0d4f" +dependencies = [ + "memchr", + "serde", + "serde_derive", + "winnow", +] + +[[package]] +name = "autocfg" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "basic-toml" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "2.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bytes" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" + +[[package]] +name = "camino" +version = "1.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbad30e4b4c14a39e3cc8aed085a12a327257c316619c93581e017bc52be591" +dependencies = [ + "serde_core", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cfg-if" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clap" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d" +dependencies = [ + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 3.0.9", +] + +[[package]] +name = "clap_lex" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486" + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ba106e844045ddc02c20768ac4b0b7cb45f2cc2ecbd833ac9f5dacb183c2055" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "fiat-crypto", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest", + "elliptic-curve", + "rfc6979", + "signature", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest", + "ff", + "generic-array", + "group", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "equivalent" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00d174d5400e5e8fd687ad1049e2f578285fa914201b1af7e8b112a4546bd826" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "explorer-bindgen" +version = "1.0.0" +dependencies = [ + "uniffi", +] + +[[package]] +name = "explorer-core" +version = "1.0.0" +dependencies = [ + "aes-gcm", + "base64", + "flate2", + "k256", + "md-5", + "pbkdf2", + "regex", + "serde", + "serde_json", + "sha2", + "uniffi", + "x25519-dalek", + "zeroize", +] + +[[package]] +name = "fastrand" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "flate2" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fs-err" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +dependencies = [ + "autocfg", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + +[[package]] +name = "goblin" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47" +dependencies = [ + "log", + "plain", + "scroll", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "indexmap" +version = "2.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "sha2", +] + +[[package]] +name = "libc" +version = "0.2.191" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a" + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "log" +version = "0.4.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest", + "hmac", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "proc-macro2" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" + +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "scroll" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" +dependencies = [ + "scroll_derive", +] + +[[package]] +name = "scroll_derive" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1783eabc414609e28a5ba76aee5ddd52199f7107a0b24c2e9746a1ecc34a683d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.9", +] + +[[package]] +name = "serde_json" +version = "1.0.154" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + +[[package]] +name = "simd-adler32" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "smawk" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8e2fb0f499abb4d162f2bedad68f5ef91a1682b5a03596ddb67efd37768d100" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom", + "once_cell", + "rustix", + "windows-sys", +] + +[[package]] +name = "textwrap" +version = "0.16.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ecfad6c3abc80a577f2b91c1e412ee57e7a060d430b553c1b0c940974ebcd49" +dependencies = [ + "smawk", + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "2.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.9", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" + +[[package]] +name = "unicode-ident" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563" + +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "uniffi" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3291800a6b06569f7d3e15bdb6dc235e0f0c8bd3eb07177f430057feb076415f" +dependencies = [ + "anyhow", + "camino", + "cargo_metadata", + "clap", + "uniffi_bindgen", + "uniffi_core", + "uniffi_macros", + "uniffi_pipeline", +] + +[[package]] +name = "uniffi_bindgen" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a04b99fa7796eaaa7b87976a0dbdd1178dc1ee702ea00aca2642003aef9b669e" +dependencies = [ + "anyhow", + "askama", + "camino", + "cargo_metadata", + "fs-err", + "glob", + "goblin", + "heck", + "indexmap", + "once_cell", + "serde", + "tempfile", + "textwrap", + "toml", + "uniffi_internal_macros", + "uniffi_meta", + "uniffi_pipeline", + "uniffi_udl", +] + +[[package]] +name = "uniffi_core" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38a9a27529ccff732f8efddb831b65b1e07f7dea3fd4cacd4a35a8c4b253b98" +dependencies = [ + "anyhow", + "bytes", + "once_cell", + "static_assertions", +] + +[[package]] +name = "uniffi_internal_macros" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09acd2ce09c777dd65ee97c251d33c8a972afc04873f1e3b21eb3492ade16933" +dependencies = [ + "anyhow", + "indexmap", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "uniffi_macros" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5596f178c4f7aafa1a501c4e0b96236a96bc2ef92bdb453d83e609dad0040152" +dependencies = [ + "camino", + "fs-err", + "once_cell", + "proc-macro2", + "quote", + "serde", + "syn 2.0.119", + "toml", + "uniffi_meta", +] + +[[package]] +name = "uniffi_meta" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beadc1f460eb2e209263c49c4f5b19e9a02e00a3b2b393f78ad10d766346ecff" +dependencies = [ + "anyhow", + "siphasher", + "uniffi_internal_macros", + "uniffi_pipeline", +] + +[[package]] +name = "uniffi_pipeline" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd76b3ac8a2d964ca9fce7df21c755afb4c77b054a85ad7a029ad179cc5abb8a" +dependencies = [ + "anyhow", + "heck", + "indexmap", + "tempfile", + "uniffi_internal_macros", +] + +[[package]] +name = "uniffi_udl" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4319cf905911d70d5b97ce0f46f101619a22e9a189c8c46d797a9955e9233716" +dependencies = [ + "anyhow", + "textwrap", + "uniffi_meta", + "weedle2", +] + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "weedle2" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "998d2c24ec099a87daf9467808859f9d82b61f1d9c9701251aea037f514eae0e" +dependencies = [ + "nom", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] + +[[package]] +name = "x25519-dalek" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +dependencies = [ + "curve25519-dalek", + "rand_core", + "serde", + "zeroize", +] + +[[package]] +name = "zeroize" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13084392c5e4bc371903e2935a5eaeed24905a7511356b883835e18a78f6879" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..735a615 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,14 @@ +[workspace] +members = ["crates/explorer-core", "tools/bindgen"] +resolver = "2" + +[workspace.package] +edition = "2021" +license-file = "LICENSE" +version = "1.0.0" + +[profile.release] +lto = true +codegen-units = 1 +opt-level = "s" +strip = "debuginfo" diff --git a/README.md b/README.md index be53c57..aa2d4e7 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,9 @@ Match your DNA data against an open ended catalogue of DNA traits with private L ### Running the Monadic DNA Explorer -The repository includes a Next.js single-page application for exploring GWAS studies. +The repository contains a Next.js web app, a native Kotlin/Compose Android app, a native SwiftUI iOS app, and a shared Rust client core. See [cross-platform development](docs/clients.md) for architecture, mobile builds, and validation. + +Install Rust with rustup before running the web app; `rust-toolchain.toml` selects the toolchain and WASM target. The npm lifecycle scripts build the shared core automatically. ```bash # Set PostgreSQL connection string diff --git a/app/api/studies/route.ts b/app/api/studies/route.ts index f4b32a4..2d299d3 100644 --- a/app/api/studies/route.ts +++ b/app/api/studies/route.ts @@ -922,6 +922,13 @@ export async function GET(request: NextRequest) { snps: s.snps, strongest_snp_risk_allele: s.strongest_snp_risk_allele, or_or_beta: s.or_or_beta, + // CI text encodes beta direction/type; omitting it misclassifies beta as OR. + ci_text: s.ci_text, + p_value: s.p_value, + pvalue_mlog: s.pvalue_mlog, + mapped_gene: s.mapped_gene, + initial_sample_size: s.initial_sample_size, + replication_sample_size: s.replication_sample_size, })); return NextResponse.json({ diff --git a/app/components/MenuDropdowns.tsx b/app/components/MenuDropdowns.tsx index a1424d5..f559e21 100644 --- a/app/components/MenuDropdowns.tsx +++ b/app/components/MenuDropdowns.tsx @@ -1,6 +1,7 @@ "use client"; import { useEffect, useRef } from "react"; +import Link from "next/link"; import { FileIcon, SaveIcon, TrashIcon, MessageIcon, ClockIcon } from "./Icons"; // My Data Dropdown @@ -54,6 +55,8 @@ export function MyDataDropdown({ + Import or export a portable encrypted vault + {hasSavedData && (
+ + } + {error &&

{error}

} + ; +} diff --git a/app/mobile-auth/page.tsx b/app/mobile-auth/page.tsx new file mode 100644 index 0000000..f82fdbd --- /dev/null +++ b/app/mobile-auth/page.tsx @@ -0,0 +1,7 @@ +import { Suspense } from 'react'; +import MobileAuth from './mobile-auth'; + +export const metadata = { title: 'Connect Explorer on your device', robots: { index: false, follow: false } }; +export default function MobileAuthPage() { + return Preparing secure sign-in…}>; +} diff --git a/app/portable-vault/page.tsx b/app/portable-vault/page.tsx new file mode 100644 index 0000000..5f3b497 --- /dev/null +++ b/app/portable-vault/page.tsx @@ -0,0 +1,65 @@ +'use client'; + +import { useRef, useState } from 'react'; +import { coreCall } from '@/lib/core'; +import { useGenotype } from '@/app/components/UserDataUpload'; +import { useResults } from '@/app/components/ResultsContext'; +import type { SavedResult } from '@/lib/results-manager'; + +type PortableSnapshot = { version: 1; genotypes: Record; results: SavedResult[]; metadata: { fileHash?: string; fileName?: string; detectedFormat?: string; count?: number } }; +const entropy = (count: number) => btoa(Array.from(crypto.getRandomValues(new Uint8Array(count)), b => String.fromCharCode(b)).join('')); + +export default function PortableVaultPage() { + const genotype = useGenotype(); + const results = useResults(); + const [password, setPassword] = useState(''); + const [message, setMessage] = useState(''); + const [busy, setBusy] = useState(false); + const file = useRef(null); + + async function exportVault() { + setBusy(true); setMessage(''); + try { + if (password.length < 8) throw new Error('Use a passphrase with at least eight characters.'); + const snapshot: PortableSnapshot = { + version: 1, genotypes: Object.fromEntries(genotype.genotypeData || []), results: results.savedResults, + metadata: { fileHash: genotype.fileHash || undefined, fileName: genotype.originalFileName || undefined, detectedFormat: genotype.detectedFormat || undefined, count: genotype.genotypeData?.size || 0 }, + }; + const sealed = coreCall('seal', { plaintext: JSON.stringify(snapshot), password, salt: entropy(16), iv: entropy(12), iterations: 600000 }); + const url = URL.createObjectURL(new Blob([JSON.stringify(sealed)], { type: 'application/json' })); + const link = document.createElement('a'); link.href = url; link.download = 'monadic-vault.json'; link.click(); + setTimeout(() => URL.revokeObjectURL(url), 1000); + setPassword(''); setMessage('Encrypted portable vault exported.'); + } catch (cause) { setMessage(cause instanceof Error ? cause.message : 'Export failed.'); } + finally { setBusy(false); } + } + async function importVault(selected: File) { + setBusy(true); setMessage(''); + let session: number | undefined; + try { + if (selected.size > 300 * 1024 * 1024) throw new Error('Vault exceeds 300 MB.'); + const envelope = JSON.parse(await selected.text()); + const plaintext = coreCall('open', { ...envelope, password }); + session = coreCall('session_create'); + coreCall('session_restore', { session, snapshot: plaintext }); // Validate before altering UI state. + const snapshot = JSON.parse(plaintext) as PortableSnapshot; + genotype.restoreGenotype({ data: new Map(Object.entries(snapshot.genotypes)), fileHash: snapshot.metadata.fileHash || null, originalFileName: snapshot.metadata.fileName || null, originalFileSize: null, detectedFormat: snapshot.metadata.detectedFormat || null, fileExtension: snapshot.metadata.fileName?.split('.').pop() || null }); + await results.restoreResults(snapshot.results); + setPassword(''); setMessage(`Restored ${Object.keys(snapshot.genotypes).length.toLocaleString()} variants and ${snapshot.results.length.toLocaleString()} results into memory.`); + } catch (cause) { setMessage(cause instanceof Error ? cause.message : 'Import failed.'); } + finally { if (session !== undefined) coreCall('session_close', { session }); setBusy(false); if (file.current) file.current.value = ''; } + } + return
+

Portable encrypted vault

+

Move your DNA and saved study results between Web, Android, and iOS. Encryption and the file format come from the same Rust library on all three platforms.

+

The passphrase protects the exported file. Imports replace your in-memory DNA and results; they do not overwrite an existing on-device vault. Your data stays on this device.

+ +
+ + +
+ { const selected = event.target.files?.[0]; if (selected) void importVault(selected); }} /> + {busy &&

Processing encrypted vault…

} + {message &&

{message}

} +
; +} diff --git a/apps/android/app/build.gradle.kts b/apps/android/app/build.gradle.kts new file mode 100644 index 0000000..27c89eb --- /dev/null +++ b/apps/android/app/build.gradle.kts @@ -0,0 +1,47 @@ +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("org.jetbrains.kotlin.plugin.compose") +} +android { + namespace = "com.monadicdna.explorer" + compileSdk = 35 + defaultConfig { + applicationId = "com.monadicdna.explorer" + minSdk = 26 + targetSdk = 35 + versionCode = 1 + versionName = "1.0.0" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + ndk { abiFilters += providers.gradleProperty("explorerAbis").orElse("arm64-v8a").get().split(',') } + } + buildFeatures { compose = true; buildConfig = true } + compileOptions { sourceCompatibility = JavaVersion.VERSION_17; targetCompatibility = JavaVersion.VERSION_17 } + kotlinOptions { jvmTarget = "17" } + packaging { resources.excludes += "/META-INF/{AL2.0,LGPL2.1}" } + testOptions.unitTests.all { + it.systemProperty("jna.library.path", rootProject.file("../../target/release").absolutePath) + it.systemProperty("explorer.sample.dir", rootProject.file("../../.test-data/public-sample").absolutePath) + } +} +dependencies { + val composeBom = platform("androidx.compose:compose-bom:2025.04.01") + implementation(composeBom) + androidTestImplementation(composeBom) + implementation("androidx.activity:activity-compose:1.10.1") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7") + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.7") + implementation("androidx.compose.material3:material3") + implementation("androidx.compose.material:material-icons-extended") + implementation("androidx.compose.ui:ui-tooling-preview") + debugImplementation("androidx.compose.ui:ui-tooling") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2") + implementation("com.squareup.okhttp3:okhttp:4.12.0") + implementation("net.java.dev.jna:jna:5.17.0@aar") + testImplementation("junit:junit:4.13.2") + testImplementation("org.json:json:20240303") + testImplementation("net.java.dev.jna:jna:5.17.0") + androidTestImplementation("androidx.test.ext:junit:1.2.1") + androidTestImplementation("androidx.compose.ui:ui-test-junit4") + androidTestImplementation("com.squareup.okhttp3:mockwebserver:4.12.0") +} diff --git a/apps/android/app/src/androidTest/java/com/monadicdna/explorer/ExplorerUiTest.kt b/apps/android/app/src/androidTest/java/com/monadicdna/explorer/ExplorerUiTest.kt new file mode 100644 index 0000000..6723144 --- /dev/null +++ b/apps/android/app/src/androidTest/java/com/monadicdna/explorer/ExplorerUiTest.kt @@ -0,0 +1,17 @@ +package com.monadicdna.explorer + +import androidx.compose.ui.test.junit4.createAndroidComposeRule +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.performClick +import org.junit.Rule +import org.junit.Test + +class ExplorerUiTest { + @get:Rule val activity=createAndroidComposeRule() + @Test fun nativeHomeAndResultsNavigation() { + activity.onNodeWithText("Your DNA. Your discoveries.").assertIsDisplayed() + activity.onNodeWithText("Results").performClick() + activity.onNodeWithText("0 saved study matches").assertIsDisplayed() + } +} diff --git a/apps/android/app/src/androidTest/java/com/monadicdna/explorer/PublicSampleTest.kt b/apps/android/app/src/androidTest/java/com/monadicdna/explorer/PublicSampleTest.kt new file mode 100644 index 0000000..f5d4f56 --- /dev/null +++ b/apps/android/app/src/androidTest/java/com/monadicdna/explorer/PublicSampleTest.kt @@ -0,0 +1,77 @@ +package com.monadicdna.explorer + +import androidx.compose.ui.test.junit4.createAndroidComposeRule +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.performClick +import androidx.compose.ui.test.onRoot +import androidx.compose.ui.test.captureToImage +import androidx.compose.ui.graphics.asAndroidBitmap +import android.graphics.Bitmap +import java.io.File +import androidx.lifecycle.ViewModelProvider +import androidx.test.platform.app.InstrumentationRegistry +import okhttp3.mockwebserver.MockWebServer +import okhttp3.mockwebserver.MockResponse +import okhttp3.mockwebserver.Dispatcher +import okhttp3.mockwebserver.RecordedRequest +import org.json.JSONObject +import org.junit.Assert.* +import org.junit.Assume.assumeTrue +import org.junit.Rule +import org.junit.Test + +/** Full public export -> real native import -> Compose Run All -> HTTP -> Rust -> visible results. */ +class PublicSampleTest { + @get:Rule val ui=createAndroidComposeRule() + @Test fun public23andMeImportAndRunAll() { + val assets=InstrumentationRegistry.getInstrumentation().context.assets + assumeTrue("Run python scripts/prepare-public-sample.py first",assets.list("public-sample")?.contains("23andme-public.txt")==true) + fun text(name:String)=assets.open("public-sample/$name").bufferedReader().use{it.readText()} + val expected=JSONObject(text("expected.json")) + val studies=text("studies.json") + val server=MockWebServer() + server.dispatcher=object:Dispatcher(){ + override fun dispatch(request:RecordedRequest):MockResponse { + val rows=if(request.requestUrl?.queryParameter("offset")=="0")studies else "[]" + return MockResponse().setHeader("Content-Type","application/json").setBody("{\"data\":$rows}") + } + } + server.start() + val endpoint=server.url("/").toString().trimEnd('/') + lateinit var model:ExplorerModel + try { + ui.runOnUiThread { + model=ViewModelProvider(ui.activity)[ExplorerModel::class.java] + model.backend=endpoint + model.acceptedDisclaimer=true + } + val bytes=assets.open("public-sample/23andme-public.txt").use{it.readBytes()} + ui.runOnUiThread { model.run("Importing public sample") { model.importGenotypeData(bytes,"23andme-public.txt") } } + ui.waitUntil(180000){model.metadata.optInt("count")==expected.getInt("parsedVariants")||model.error!=null} + ui.runOnUiThread { + assertNull(model.error) + assertEquals(expected.getInt("parsedVariants"),model.metadata.getInt("count")) + } + ui.onNodeWithText("Results",useUnmergedTree=false).performClick() + ui.onNodeWithText("Run all").performClick() + ui.waitUntil(180000){model.results.size==expected.getInt("matches")||model.error!=null} + ui.onNodeWithText("${expected.getInt("matches")} saved study matches").assertIsDisplayed() + ui.runOnUiThread { + assertNull(model.error) + val wanted=expected.getJSONArray("results").objects().associateBy{it.getInt("studyId")} + assertEquals(wanted.size,model.results.size) + for(actual in model.results){ + val row=wanted.getValue(actual.getInt("studyId")) + for(key in listOf("matchedSnp","userGenotype","effectType","riskLevel"))assertEquals("$key for study ${row.getInt("studyId")}",row.getString(key),actual.getString(key)) + assertEquals(row.getDouble("riskScore"),actual.getDouble("riskScore"),1e-12) + } + val imported=Core.obj("import_results",json("content" to model.exportResults(),"fileName" to "results.tsv")) + assertEquals(wanted.size,imported.getJSONArray("results").length()) + } + val bitmap=ui.onRoot().captureToImage().asAndroidBitmap() + File(ui.activity.filesDir,"public-sample-results.png").outputStream().use { bitmap.compress(Bitmap.CompressFormat.PNG,100,it) } + ui.runOnUiThread { model.clear() } + } finally { server.shutdown() } + } +} diff --git a/apps/android/app/src/debug/res/xml/network_security_config.xml b/apps/android/app/src/debug/res/xml/network_security_config.xml new file mode 100644 index 0000000..d26b1cb --- /dev/null +++ b/apps/android/app/src/debug/res/xml/network_security_config.xml @@ -0,0 +1,10 @@ + + + + + + localhost + 127.0.0.1 + 10.0.2.2 + + diff --git a/apps/android/app/src/main/AndroidManifest.xml b/apps/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b0bd6cf --- /dev/null +++ b/apps/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/Core.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/Core.kt new file mode 100644 index 0000000..57a4e2d --- /dev/null +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/Core.kt @@ -0,0 +1,25 @@ +package com.monadicdna.explorer + +import org.json.JSONArray +import org.json.JSONObject +import com.monadicdna.explorer.core.coreCall +import com.monadicdna.explorer.core.importGenotype as nativeImportGenotype + +object Core { + fun importGenotype(session: Long, bytes: ByteArray, name: String): JSONObject { + val response=JSONObject(nativeImportGenotype(session.toULong(),bytes,name)) + check(response.getBoolean("ok")) { response.optString("error","File import failed") } + return response.getJSONObject("value") + } + fun call(operation: String, input: Any? = null): Any? { + val request = JSONObject().put("version", 1).put("operation", operation).put("input", input ?: JSONObject.NULL) + val response = JSONObject(coreCall(request.toString())) + check(response.getBoolean("ok")) { response.optString("error", "Shared core failed") } + return response.opt("value").takeUnless { it == JSONObject.NULL } + } + fun obj(operation: String, input: Any? = null) = call(operation, input) as JSONObject + fun arr(operation: String, input: Any? = null) = call(operation, input) as JSONArray +} + +fun json(vararg values: Pair) = JSONObject().apply { values.forEach { put(it.first, it.second ?: JSONObject.NULL) } } +fun JSONArray.objects(): List = (0 until length()).map { getJSONObject(it) } diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/DeviceStore.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/DeviceStore.kt new file mode 100644 index 0000000..c73bdce --- /dev/null +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/DeviceStore.kt @@ -0,0 +1,40 @@ +package com.monadicdna.explorer + +import android.content.Context +import android.security.keystore.KeyGenParameterSpec +import android.security.keystore.KeyProperties +import android.util.Base64 +import java.security.KeyStore +import java.security.SecureRandom +import javax.crypto.Cipher +import javax.crypto.KeyGenerator +import javax.crypto.SecretKey +import javax.crypto.spec.GCMParameterSpec + +/** OS-bound storage for auth/provider keys. Genetic data is saved only in the explicit encrypted vault. */ +class DeviceStore(context: Context) { + private val prefs = context.getSharedPreferences("secure-settings", Context.MODE_PRIVATE) + private val alias = "monadic-explorer-device-key" + private fun key(): SecretKey { + val store = KeyStore.getInstance("AndroidKeyStore").apply { load(null) } + (store.getKey(alias, null) as? SecretKey)?.let { return it } + return KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore").apply { + init(KeyGenParameterSpec.Builder(alias, KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT) + .setBlockModes(KeyProperties.BLOCK_MODE_GCM).setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE).build()) + }.generateKey() + } + fun put(name: String, value: String) { + if (value.isEmpty()) { prefs.edit().remove(name).apply(); return } + val cipher = Cipher.getInstance("AES/GCM/NoPadding").apply { init(Cipher.ENCRYPT_MODE, key()) } + val data = cipher.iv + cipher.doFinal(value.toByteArray(Charsets.UTF_8)) + prefs.edit().putString(name, Base64.encodeToString(data, Base64.NO_WRAP)).apply() + } + fun get(name: String): String { + val encoded = prefs.getString(name, null) ?: return "" + val data = Base64.decode(encoded, Base64.NO_WRAP) + val cipher = Cipher.getInstance("AES/GCM/NoPadding").apply { init(Cipher.DECRYPT_MODE, key(), GCMParameterSpec(128, data.copyOfRange(0,12))) } + return cipher.doFinal(data.copyOfRange(12,data.size)).toString(Charsets.UTF_8) + } + fun remove(name: String) { prefs.edit().remove(name).apply() } + companion object { fun entropy(count: Int) = Base64.encodeToString(ByteArray(count).also { SecureRandom().nextBytes(it) }, Base64.NO_WRAP) } +} diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt new file mode 100644 index 0000000..7d4470c --- /dev/null +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt @@ -0,0 +1,258 @@ +package com.monadicdna.explorer + +import android.app.Application +import android.net.Uri +import android.util.Base64 +import androidx.compose.runtime.* +import androidx.lifecycle.AndroidViewModel +import androidx.lifecycle.viewModelScope +import kotlinx.coroutines.* +import okhttp3.* +import okhttp3.MediaType.Companion.toMediaType +import okhttp3.RequestBody.Companion.toRequestBody +import org.json.JSONArray +import org.json.JSONObject +import java.time.Instant +import java.util.concurrent.TimeUnit +import java.io.IOException +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException + +class ExplorerModel(app: Application) : AndroidViewModel(app) { + val store = DeviceStore(app) + var session = (Core.call("session_create") as Number).toLong() + private set + var backend by mutableStateOf(store.get("backend").ifBlank { "https://explorer.monadicdna.com" }) + var provider by mutableStateOf(store.get("provider").ifBlank { "nilai" }) + var model by mutableStateOf(store.get("model").ifBlank { "gemma-4-26B-A4B-it" }) + var apiKey by mutableStateOf(store.get("api-key-$provider")) + var ollamaAddress by mutableStateOf(store.get("ollama-address").ifBlank { "localhost" }) + var ollamaPort by mutableStateOf(store.get("ollama-port").ifBlank { "11434" }) + var profile by mutableStateOf(store.get("profile")) + val profileSchema = Core.arr("profile_schema").objects() + val profileFields = mutableStateMapOf().apply { + val saved=store.get("profile-fields").ifBlank { "{}" };val fields=JSONObject(saved) + profileSchema.forEach { put(it.getString("key"),fields.optString(it.getString("key"))) } + } + private fun profileData() = Core.obj("parse_profile",JSONObject(profileFields.toMap())) + var wallet by mutableStateOf(store.get("wallet")) + var metadata by mutableStateOf(JSONObject()) + var studies by mutableStateOf(emptyList()) + var traits by mutableStateOf(emptyList()) + var results by mutableStateOf(emptyList()) + var selectedStudy by mutableStateOf(null) + var subscription by mutableStateOf(null) + var busy by mutableStateOf(false) + var status by mutableStateOf("") + var error by mutableStateOf(null) + var report by mutableStateOf("") + var reportTitle by mutableStateOf("") + var reportQuestions by mutableStateOf(emptyList()) + var shareResultsWithLLM by mutableStateOf(false) + var acceptedDisclaimer by mutableStateOf(false) + val messages = mutableStateListOf>() + private val http = OkHttpClient.Builder().connectTimeout(20,TimeUnit.SECONDS).readTimeout(180,TimeUnit.SECONDS).build() + private var task: Job? = null + + fun run(label: String, block: suspend () -> Unit) { + if (busy) return + task = viewModelScope.launch { + busy=true; status=label; error=null + try { block(); status="Complete" } + catch (cancelled: CancellationException) { status="Cancelled"; throw cancelled } + catch (e: Exception) { error=e.message ?: "Operation failed" } + finally { busy=false } + } + } + fun cancel() { task?.cancel() } + private fun checkedBackend(): String { + val uri=Uri.parse(backend) + require(uri.scheme=="https" || (BuildConfig.DEBUG && uri.scheme=="http" && uri.host in listOf("localhost","127.0.0.1","10.0.2.2"))) { "Use an HTTPS backend (debug builds also allow the local emulator host)." } + require(uri.userInfo==null && uri.query==null && uri.fragment==null) { "Backend must be an origin without credentials, query or fragment." } + return backend.trimEnd('/') + } + suspend fun api(path: String, body: JSONObject? = null): JSONObject { + val origin=checkedBackend() + return request(origin+path,body,store.get("auth-token")) + } + private suspend fun request(url: String, body: JSONObject?, bearer: String = "", origin: String? = null): JSONObject = suspendCancellableCoroutine { continuation -> + val builder=Request.Builder().url(url).header("Accept","application/json") + if (bearer.isNotEmpty()) builder.header("Authorization","Bearer $bearer") + if (origin!=null) builder.header("Origin",origin) + if (body!=null) builder.post(body.toString().toRequestBody("application/json".toMediaType())) + val call=http.newCall(builder.build()) + continuation.invokeOnCancellation { call.cancel() } + call.enqueue(object: Callback { + override fun onFailure(call: Call, exception: IOException) { if(continuation.isActive) continuation.resumeWithException(exception) } + override fun onResponse(call: Call, response: Response) { + try { + val data=response.use { + if(!it.isSuccessful) throw IllegalStateException("Request failed (HTTP ${it.code}). Check connection, sign-in and provider settings.") + JSONObject(it.body?.string().orEmpty()) + } + if(continuation.isActive) continuation.resume(data) + } catch(exception: Exception) { if(continuation.isActive) continuation.resumeWithException(exception) } + } + }) + } + fun settingsSaved() { + checkedBackend() + profileData() + store.put("profile-fields",JSONObject(profileFields.toMap()).toString()) + listOf("backend" to backend,"provider" to provider,"model" to model,"api-key-$provider" to apiKey,"ollama-address" to ollamaAddress,"ollama-port" to ollamaPort,"profile" to profile).forEach{store.put(it.first,it.second)} + } + fun selectProvider(next: String) { try { store.put("api-key-$provider",apiKey);provider=next;apiKey=store.get("api-key-$next") } catch(e:Exception){error="Unable to switch secure provider settings"} } + fun browse(query: String, trait: String, semantic: Boolean, offset: Int = 0) = run("Loading studies") { + val params=Uri.Builder().appendQueryParameter("search",query).appendQueryParameter("searchMode",if(semantic)"similarity" else "exact").appendQueryParameter("trait",trait).appendQueryParameter("offset",offset.toString()).appendQueryParameter("limit","50").build().encodedQuery + val response=api("/api/studies?$params") + studies=response.getJSONArray("data").objects() + if(traits.isEmpty()) { val list=api("/api/traits").getJSONArray("traits");traits=(0 until list.length()).map(list::getString) } + } + fun showStudy(study: JSONObject) { selectedStudy=study } + fun loadStudy(id: Int) = run("Loading study") { selectedStudy=api("/api/studies?id=$id").getJSONArray("data").objects().firstOrNull() } + fun importGenotype(bytes: ByteArray, name: String) = run("Reading DNA locally") { importGenotypeData(bytes, name) } + suspend fun importGenotypeData(bytes: ByteArray, name: String) { + require(acceptedDisclaimer) { "Accept the educational-use disclaimer before importing DNA." } + val importSession=session + metadata=withContext(Dispatchers.Default) { Core.importGenotype(importSession,bytes,name) } + results=emptyList() + } + suspend fun refreshResults() { results=withContext(Dispatchers.Default) { Core.arr("session_results",json("session" to session)).objects() } } + fun analyze(study: JSONObject) = run("Analyzing on device") { + require(metadata.optInt("count")>0) { "Import your DNA first." } + withContext(Dispatchers.Default) { Core.arr("session_analyze",json("session" to session,"studies" to JSONArray().put(study),"now" to Instant.now().toString())) } + refreshResults() + if(results.none { it.optInt("studyId")==study.optInt("id") }) status="No matching called risk variant in this study" + } + fun runAll() = run("Analyzing catalog on device") { + require(metadata.optInt("count")>0) { "Import your DNA first." } + var offset=0 + while(true) { + ensureActiveTask() + val page=api("/api/studies?fetchAll=true&searchMode=exact&excludeLowQuality=false&excludeMissingGenotype=false&limit=1000&offset=$offset") + val batch=page.getJSONArray("data") + if(batch.length()==0)break + withContext(Dispatchers.Default){ Core.call("session_analyze",json("session" to session,"studies" to batch,"strict" to true,"now" to Instant.now().toString())) } + offset+=1000;status="Analyzed up to $offset catalog records" + if(batch.length()<1000)break + } + refreshResults() + } + private suspend fun ensureActiveTask() { currentCoroutineContext().ensureActive() } + fun clear() { task?.cancel();Core.call("session_close",json("session" to session));session=(Core.call("session_create") as Number).toLong();metadata=JSONObject();results=emptyList();messages.clear();report="";reportQuestions=emptyList() } + fun exportResults(): String = Core.call("session_export",json("session" to session)) as String + fun importResults(content: String, name: String) = run("Importing results") { importResultsData(content, name) } + suspend fun importResultsData(content: String, name: String) { withContext(Dispatchers.Default){Core.call("session_import_results",json("session" to session,"content" to content,"fileName" to name,"now" to Instant.now().toString()))};refreshResults() } + suspend fun sealedVault(password: String): String = withContext(Dispatchers.Default) { + require(password.length>=8) { "Use a passphrase with at least eight characters." } + val snapshot=Core.call("session_snapshot",json("session" to session)) as String + Core.obj("seal",json("plaintext" to snapshot,"password" to password,"salt" to DeviceStore.entropy(16),"iv" to DeviceStore.entropy(12),"iterations" to 600000)).toString() + } + fun saveVault(password: String) = run("Encrypting vault") { val encrypted=sealedVault(password);withContext(Dispatchers.IO){getApplication().openFileOutput("vault.json",0).use{it.write(encrypted.toByteArray())}} } + fun openVault(password: String, imported: String? = null) = run("Unlocking vault") { openVaultData(password, imported) } + suspend fun openVaultData(password: String, imported: String? = null) { + val encrypted=imported ?: withContext(Dispatchers.IO){getApplication().openFileInput("vault.json").bufferedReader().use{it.readText()}} + metadata=withContext(Dispatchers.Default){ + val input=JSONObject(encrypted).put("password",password) + val snapshot=Core.call("open",input) as String + Core.obj("session_restore",json("session" to session,"snapshot" to snapshot)) + };refreshResults() + } + fun deleteVault(){getApplication().deleteFile("vault.json");clear()} + fun beginAuth(): String { + val pair=Core.obj("auth_keypair",json("entropy" to DeviceStore.entropy(32))) + val state=DeviceStore.entropy(32).replace("+","-").replace("/","_").trimEnd('=') + store.put("pending-auth",json("privateKey" to pair.getString("privateKey"),"state" to state,"expires" to (System.currentTimeMillis()+300000)).toString()) + return Uri.parse(checkedBackend()+"/mobile-auth").buildUpon().appendQueryParameter("state",state).appendQueryParameter("publicKey",pair.getString("publicKey")).build().toString() + } + fun receiveAuth(uri: Uri) = run("Completing sign-in") { + require(uri.scheme=="monadicexplorer"&&uri.host=="auth") { "Invalid sign-in callback" } + val pending=JSONObject(store.get("pending-auth")) + require(pending.getLong("expires")>=System.currentTimeMillis()&&uri.getQueryParameter("state")==pending.getString("state")) { "Sign-in expired or state did not match" } + val encoded=Uri.parse("https://callback/?"+uri.fragment.orEmpty()).getQueryParameter("payload") ?: kotlin.error("Missing encrypted sign-in response") + val sealed=JSONObject(Base64.decode(encoded,Base64.URL_SAFE or Base64.NO_WRAP).toString(Charsets.UTF_8)) + sealed.put("privateKey",pending.getString("privateKey")).put("state",pending.getString("state")) + val auth=JSONObject(Core.call("auth_open",sealed) as String) + require(auth.getLong("expiresAt")>=System.currentTimeMillis()&&Regex("^0x[a-fA-F0-9]{40}$").matches(auth.getString("walletAddress"))) { "Invalid or expired sign-in response" } + store.put("auth-token",auth.getString("token"));wallet=auth.getString("walletAddress");store.put("wallet",wallet);store.remove("pending-auth") + subscription=api("/api/check-subscription",json("walletAddress" to wallet)) + } + fun signOut(){store.remove("auth-token");store.remove("wallet");store.remove("pending-auth");wallet="";subscription=null} + fun refreshSubscription() = run("Checking subscription") { require(wallet.isNotBlank()){ "Sign in first" };subscription=api("/api/check-subscription",json("walletAddress" to wallet)) } + suspend fun checkout(): String { require(wallet.isNotBlank()){ "Sign in first" };return api("/api/stripe/create-checkout",json("walletAddress" to wallet)).getString("url") } + fun applyPromo(code: String) { val response=Core.obj("promo",code);require(response.getBoolean("valid")){response.getString("message")};store.put("promo",code);status=response.getString("message") } + private suspend fun requireAccess(kind: String) { + var access=Core.obj("feature_access",json("kind" to kind,"promo" to store.get("promo"))) + if(access.getBoolean("allowed"))return + require(wallet.isNotBlank()){ "Sign in or apply a premium promo code in Account first." } + subscription=api("/api/check-subscription",json("walletAddress" to wallet)) + access=Core.obj("feature_access",json("kind" to kind,"promo" to store.get("promo"),"activeSubscription" to subscription?.optJSONObject("subscription")?.optBoolean("isActive"))) + if(access.getBoolean("allowed"))return + require(!access.isNull("reportType")){ "An active subscription or premium promo is required for chat." } + val type=access.getString("reportType") + val passes=api("/api/report-access",json("walletAddress" to wallet)) + require(passes.getJSONObject("availableReports").optInt(type)>0){ "Subscribe or buy a $kind report pass on the website, then try again." } + api("/api/report-access",json("walletAddress" to wallet,"reportType" to type,"action" to "consume")) + } + private fun llmConfig()=json("provider" to provider,"model" to model,"huggingfaceApiKey" to apiKey,"ollamaAddress" to ollamaAddress,"ollamaPort" to (ollamaPort.toIntOrNull()?:11434)) + private suspend fun nilaiAuthorization(endpoint: String): String { + val serverKey=withContext(Dispatchers.IO){ + http.newCall(Request.Builder().url("$endpoint/public_key").build()).execute().use{response-> + check(response.isSuccessful){"Unable to retrieve nilAI public key"};response.body!!.string().trim() + } + } + val pair=if(apiKey.isNotBlank())json("privateKey" to apiKey)else Core.obj("nilai_keypair",json("entropy" to DeviceStore.entropy(32))) + val input=json("privateKey" to pair.getString("privateKey"),"serverKey" to serverKey,"nonce" to DeviceStore.entropy(16),"rootNonce" to DeviceStore.entropy(16),"now" to (System.currentTimeMillis()/1000)) + if(apiKey.isBlank()){ + // As on the web, the backend delegates one use to a fresh device key. + // Only the public key visits the backend; genetic prompts go directly to nilAI. + val response=api("/api/nilai-delegation",json("delegationRequest" to json("public_key" to pair.getString("publicKey")))) + input.put("delegation",response.getJSONObject("delegationToken").getString("delegation_token")) + } + return Core.call("nilai_invocation",input) as String + } + private suspend fun complete(messages: JSONArray): String { + val config=Core.obj("llm_config",llmConfig());val endpoint=config.getString("endpoint").trimEnd('/') + if(provider=="huggingface")require(apiKey.isNotBlank()){"Enter your provider API key in Settings. Keys stay on this device."} + if(provider=="ollama"){ + val data=request("$endpoint/api/chat",json("model" to config.getString("identifier"),"messages" to messages,"stream" to false)) + return data.getJSONObject("message").getString("content") + } + val bearer=if(provider=="nilai")nilaiAuthorization(endpoint)else apiKey + val response=request("$endpoint/chat/completions",json("model" to config.getString("identifier"),"messages" to messages,"stream" to false),bearer) + return response.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getString("content") + } + fun sendChat(message: String) = run("Asking selected provider") { + require(shareResultsWithLLM){"Confirm sharing matched results with the selected provider first."} + require(message.isNotBlank()){"Enter a message"} + requireAccess("Chat") + val prompt=Core.obj("report_prompt",json("kind" to "DNA chat","results" to JSONArray(results),"customization" to profileData(),"context" to profile)).getJSONArray("messages") + messages.forEach{prompt.put(json("role" to it.first,"content" to it.second))};prompt.put(json("role" to "user","content" to message)) + val reply=complete(prompt);messages.add("user" to message);messages.add("assistant" to reply) + } + fun generateReport(kind: String) = run("Generating $kind report") { + require(shareResultsWithLLM){"Confirm sharing matched results with the selected provider first."} + require(results.isNotEmpty()){ "Analyze studies or import results first" } + requireAccess(kind) + if(kind!="Overview") { + val prompt=Core.obj("report_prompt",json("kind" to kind,"results" to JSONArray(results),"customization" to profileData(),"context" to profile)).getJSONArray("messages") + val parsed=Core.obj("extract_report",complete(prompt)) + reportTitle=kind;report=parsed.getString("report") + reportQuestions=(0 until parsed.getJSONArray("questions").length()).map{parsed.getJSONArray("questions").getString(it)} + return@run + } + val groups=Core.arr("partition_results",json("results" to JSONArray(results),"groups" to ((results.size+249)/250))) + val summaries=mutableListOf() + val userContext=(Core.call("user_context",profileData()) as String)+"\n"+profile + for(i in 0 until groups.length()){ + ensureActiveTask();status="Analyzing report group ${i+1}/${groups.length()}" + val batch=groups.getJSONArray(i) + val prompt=Core.call("render_prompt",json("name" to "generateMapPrompt","values" to json("groupNumber" to (i+1),"totalGroups" to groups.length(),"resultsInGroup" to batch.length(),"totalResults" to results.size,"compactResults" to Core.call("format_results",batch),"userContext" to userContext))) as String + summaries.add(complete(JSONArray().put(json("role" to "user","content" to prompt)))) + } + reportTitle=kind + val reduce=Core.call("render_prompt",json("name" to "generateReducePrompt","values" to json("groupSummaries" to JSONArray(summaries),"userContext" to userContext))) as String + report=complete(JSONArray().put(json("role" to "user","content" to reduce))) + } + override fun onCleared(){Core.call("session_close",json("session" to session));super.onCleared()} +} diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt new file mode 100644 index 0000000..1fe9fdb --- /dev/null +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt @@ -0,0 +1,212 @@ +package com.monadicdna.explorer + +import android.content.Intent +import android.net.Uri +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.rememberLauncherForActivityResult +import androidx.activity.result.contract.ActivityResultContracts +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.Chat +import androidx.compose.material.icons.automirrored.filled.List +import androidx.compose.material.icons.filled.* +import androidx.compose.material3.* +import androidx.compose.runtime.* +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.unit.dp +import androidx.lifecycle.ViewModelProvider +import org.json.JSONObject +import java.io.ByteArrayOutputStream + +class MainActivity: ComponentActivity() { + private val model by lazy { ViewModelProvider(this)[ExplorerModel::class.java] } + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + intent?.data?.takeIf{it.scheme=="monadicexplorer"&&it.host=="auth"}?.let(model::receiveAuth) + setContent { MaterialTheme { ExplorerApp(model) } } + } + override fun onNewIntent(intent: Intent) { super.onNewIntent(intent);setIntent(intent);intent.data?.takeIf{it.scheme=="monadicexplorer"&&it.host=="auth"}?.let(model::receiveAuth) } +} + +private fun openBrowser(context: android.content.Context, url: String) { context.startActivity(Intent(Intent.ACTION_VIEW,Uri.parse(url))) } +private fun readDocument(context: android.content.Context, uri: Uri, max: Int=150*1024*1024): ByteArray { + return context.contentResolver.openInputStream(uri)!!.use { stream -> + val output=ByteArrayOutputStream();val buffer=ByteArray(65536) + while(true){val n=stream.read(buffer);if(n<0)break;require(output.size()+n<=max){"File exceeds supported size"};output.write(buffer,0,n)} + output.toByteArray() + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable fun ExplorerApp(model: ExplorerModel) { + var tab by remember { mutableStateOf("Home") } + val context=LocalContext.current + var exportContent by remember { mutableStateOf("") } + val export=rememberLauncherForActivityResult(ActivityResultContracts.CreateDocument("text/plain")){uri->if(uri!=null)model.run("Writing export"){kotlinx.coroutines.withContext(kotlinx.coroutines.Dispatchers.IO){context.contentResolver.openOutputStream(uri)!!.use{it.write(exportContent.toByteArray())}};exportContent=""}} + val importDNA=rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()){uri->if(uri!=null){model.run("Reading DNA file"){ + val bytes=kotlinx.coroutines.withContext(kotlinx.coroutines.Dispatchers.IO){readDocument(context,uri)} + // Schedule import after this short IO operation has completed. + model.importGenotypeData(bytes,uri.lastPathSegment?:"genotype.txt") + }}} + val importResults=rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()){uri->if(uri!=null)model.run("Reading results"){ + val content=kotlinx.coroutines.withContext(kotlinx.coroutines.Dispatchers.IO){readDocument(context,uri).toString(Charsets.UTF_8)} + val name=if(uri.toString().endsWith("json"))"results.json" else "results.tsv" + model.importResultsData(content,name) + }} + fun exportText(name: String, content: String){exportContent=content;export.launch(name)} + Scaffold( + topBar={TopAppBar(title={Text("Monadic DNA Explorer")},actions={TextButton(onClick={tab="Vault"}){Text(if(model.metadata.optInt("count")>0)"DNA loaded" else "Import DNA")}})}, + bottomBar={NavigationBar { listOf("Home","Browse","Results","Chat","More").forEachIndexed{index,name->NavigationBarItem(selected=tab==name,onClick={tab=name},label={Text(name)},icon={Icon(when(index){0->Icons.Default.Home;1->Icons.Default.Search;2->Icons.AutoMirrored.Filled.List;3->Icons.AutoMirrored.Filled.Chat;else->Icons.Default.MoreHoriz},contentDescription=name)})} }} + ){padding-> + Column(Modifier.padding(padding).fillMaxSize()){ + if(model.busy){LinearProgressIndicator(Modifier.fillMaxWidth());Row(Modifier.padding(horizontal=16.dp),horizontalArrangement=Arrangement.SpaceBetween){Text(model.status,Modifier.weight(1f));TextButton(onClick=model::cancel){Text("Cancel")}}} + model.error?.let{message->Card(Modifier.padding(12.dp)){Column(Modifier.padding(12.dp)){Text(message,color=MaterialTheme.colorScheme.error);TextButton(onClick={model.error=null}){Text("Dismiss")}}}} + when(tab){ + "Home"->ScreenColumn{ + Text("Your DNA. Your discoveries.",style=MaterialTheme.typography.headlineLarge) + Text("Explore genetic research, match your variants on device, and understand associations with private provider-based analysis.") + Button(onClick={tab="Vault"}){Text("Import your DNA")} + OutlinedButton(onClick={tab="Browse";model.browse("","",true)}){Text("Browse studies")} + Text("${model.metadata.optInt("count")} variants • ${model.results.size} saved study matches") + if(model.results.isNotEmpty()){ + val insight=remember(model.results){Core.obj("preview_insight",org.json.JSONArray(model.results))} + Text(insight.getString("headline"),style=MaterialTheme.typography.titleMedium) + Text("${insight.getInt("protectiveCount")} protective associations • ${insight.getInt("elevatedCount")} elevated associations") + } + Text("Genetic associations are educational research findings, not a diagnosis. Odds ratios are relative, not absolute risk; beta values describe trait changes.",style=MaterialTheme.typography.bodySmall) + } + "Browse"->BrowseScreen(model) + "Results"->ResultsScreen(model,{name,content->exportText(name,content)},{importResults.launch(arrayOf("text/*","application/json","application/octet-stream"))}) + "Chat"->ChatScreen(model) + "Reports"->ReportScreen(model){exportText("monadic-report.md",model.report)} + "Vault"->VaultScreen(model,{importDNA.launch(arrayOf("text/*","application/gzip","application/octet-stream"))}){name,content->exportText(name,content)} + "Settings"->SettingsScreen(model) + "Account"->AccountScreen(model) + "More"->ScreenColumn{listOf("Reports","Vault","Settings","Account").forEach{name->OutlinedButton(onClick={tab=name},modifier=Modifier.fillMaxWidth()){Text(name)}};Text("Genotype formats: 23andMe, AncestryDNA, MyHeritage, FTDNA, LivingDNA, Mapmygenome, and Monadic DNA. Compressed .gz files are supported. Genetic data is processed on device.")} + } + } + } + if(model.selectedStudy!=null) ModalBottomSheet(onDismissRequest={model.selectedStudy=null}){StudyScreen(model,model.selectedStudy!!)} +} + +@Composable private fun ScreenColumn(content: @Composable ColumnScope.()->Unit){Column(Modifier.fillMaxSize().verticalScroll(rememberScrollState()).padding(20.dp),verticalArrangement=Arrangement.spacedBy(14.dp),content=content)} + +@Composable private fun BrowseScreen(model: ExplorerModel){ + var query by remember{mutableStateOf("")};var trait by remember{mutableStateOf("")};var semantic by remember{mutableStateOf(true)};var offset by remember{mutableIntStateOf(0)} + Column(Modifier.fillMaxSize().padding(16.dp)){ + OutlinedTextField(value=query,onValueChange={query=it},label={Text("Search traits, studies, genes or SNPs")},modifier=Modifier.fillMaxWidth()) + OutlinedTextField(value=trait,onValueChange={trait=it},label={Text("Trait filter (optional)")},modifier=Modifier.fillMaxWidth()) + Row{Checkbox(checked=semantic,onCheckedChange={semantic=it});Text("Semantic search",Modifier.padding(top=12.dp));Spacer(Modifier.weight(1f));Button(onClick={offset=0;model.browse(query,trait,semantic)},enabled=!model.busy){Text("Search")}} + if(model.studies.isEmpty())Text("Search the catalog to discover studies.") + LazyColumn(Modifier.weight(1f),verticalArrangement=Arrangement.spacedBy(10.dp)){items(model.studies,key={it.optInt("id")}){study->Card(onClick={model.showStudy(study)},modifier=Modifier.fillMaxWidth()){Column(Modifier.padding(16.dp)){Text(study.optString("disease_trait","Unknown trait"),fontWeight=FontWeight.Bold);Text(study.optString("study"),maxLines=3);Text("${study.optString("study_accession")} • ${study.optString("confidenceBand","Research finding")}",style=MaterialTheme.typography.labelSmall)}}}} + Row(horizontalArrangement=Arrangement.SpaceBetween,modifier=Modifier.fillMaxWidth()){TextButton(onClick={offset=(offset-50).coerceAtLeast(0);model.browse(query,trait,semantic,offset)},enabled=offset>0&&!model.busy){Text("Previous")};TextButton(onClick={offset+=50;model.browse(query,trait,semantic,offset)},enabled=model.studies.isNotEmpty()&&!model.busy){Text("Next")}} + } +} + +@Composable private fun StudyScreen(model: ExplorerModel,study: JSONObject){ + val context=LocalContext.current + Column(Modifier.fillMaxWidth().verticalScroll(rememberScrollState()).padding(20.dp),verticalArrangement=Arrangement.spacedBy(12.dp)){ + Text(study.optString("disease_trait"),style=MaterialTheme.typography.headlineMedium);Text(study.optString("study")) + for((key,label) in listOf("study_accession" to "Accession","mapped_gene" to "Genes","snps" to "Variants","strongest_snp_risk_allele" to "Reported risk allele","or_or_beta" to "OR / beta","ci_text" to "Effect interval","p_value" to "P-value","initial_sample_size" to "Discovery sample","replication_sample_size" to "Replication sample","first_author" to "Author","journal" to "Journal","date" to "Publication date")){val value=study.optString(key);if(value.isNotBlank()&&value!="null")Text("$label: $value")} + Button(onClick={model.analyze(study)},enabled=!model.busy){Text("Match my DNA on device")} + model.results.firstOrNull{it.optInt("studyId")==study.optInt("id")}?.let{result->ResultCard(result)} + val pmid=study.optString("pubmedid");if(pmid.matches(Regex("^[0-9]+$")))TextButton(onClick={openBrowser(context,"https://pubmed.ncbi.nlm.nih.gov/$pmid/")}){Text("Read original publication")} + Text("An association does not establish causation or predict an individual's health outcome.",style=MaterialTheme.typography.bodySmall) + } +} + +@Composable private fun ResultCard(result: JSONObject){ + val evidence=remember(result.toString()){Core.obj("evidence",result)} + Card(Modifier.fillMaxWidth()){Column(Modifier.padding(16.dp),verticalArrangement=Arrangement.spacedBy(5.dp)){Text(result.optString("traitName"),fontWeight=FontWeight.Bold);Text("${result.optString("matchedSnp")}: ${result.optString("userGenotype")} • ${result.optString("effectType","OR")} ${result.optDouble("riskScore")}");Text(result.optString("riskLevel"));Text(evidence.getString("label"),style=MaterialTheme.typography.labelSmall)}} +} + +@Composable private fun ResultsScreen(model: ExplorerModel,export: (String,String)->Unit,importResults: ()->Unit){ + var filter by remember{mutableStateOf("")} + Column(Modifier.fillMaxSize().padding(16.dp),verticalArrangement=Arrangement.spacedBy(10.dp)){ + Text("${model.results.size} saved study matches",style=MaterialTheme.typography.titleLarge) + Row{TextButton(onClick={model.runAll()},enabled=!model.busy){Text("Run all")};TextButton(onClick={export("monadic-results.tsv",model.exportResults())},enabled=model.results.isNotEmpty()){Text("Export")};TextButton(onClick=importResults){Text("Import")}} + OutlinedTextField(value=filter,onValueChange={filter=it},label={Text("Filter saved traits")},modifier=Modifier.fillMaxWidth()) + LazyColumn(verticalArrangement=Arrangement.spacedBy(10.dp)){items(model.results.filter{it.optString("traitName").contains(filter,true)},key={it.optInt("studyId")}){result->ResultCard(result)}} + } +} + +@Composable private fun Consent(model: ExplorerModel){Row{Checkbox(checked=model.shareResultsWithLLM,onCheckedChange={model.shareResultsWithLLM=it});Text("Allow matched results and profile context to be sent to my selected LLM provider.",style=MaterialTheme.typography.bodySmall)}} +@Composable private fun ChatScreen(model: ExplorerModel){ + var message by remember{mutableStateOf("")} + Column(Modifier.fillMaxSize().padding(16.dp),verticalArrangement=Arrangement.spacedBy(10.dp)){ + Consent(model) + LazyColumn(Modifier.weight(1f),verticalArrangement=Arrangement.spacedBy(12.dp)){items(model.messages.toList()){(role,text)->Card(Modifier.fillMaxWidth()){Column(Modifier.padding(12.dp)){Text(role,fontWeight=FontWeight.Bold);Text(text)}}}} + OutlinedTextField(value=message,onValueChange={message=it},label={Text("Ask about your matched findings")},modifier=Modifier.fillMaxWidth()) + Button(onClick={model.sendChat(message);message=""},enabled=!model.busy&&message.isNotBlank()){Text("Send")} + } +} +@Composable private fun ReportScreen(model: ExplorerModel,export: ()->Unit){ScreenColumn{Text("Genetic research reports",style=MaterialTheme.typography.headlineMedium);Consent(model);listOf("Overview","Health","Healthspan","Top traits").forEach{kind->OutlinedButton(onClick={model.generateReport(kind)},enabled=!model.busy&&model.results.isNotEmpty()){Text("Generate $kind")}};if(model.report.isNotEmpty()){Text(model.reportTitle,style=MaterialTheme.typography.titleLarge);Text(model.report);Button(onClick=export){Text("Export report")};model.reportQuestions.forEach{question->OutlinedButton(onClick={model.sendChat(question)},enabled=!model.busy){Text(question)}}}}} + +@Composable private fun VaultScreen(model: ExplorerModel,importDNA: ()->Unit,export: (String,String)->Unit){ + var password by remember{mutableStateOf("")};var confirmDelete by remember{mutableStateOf(false)} + val context=LocalContext.current + val importVault=rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()){uri->if(uri!=null)model.run("Reading encrypted vault"){ + val sealed=kotlinx.coroutines.withContext(kotlinx.coroutines.Dispatchers.IO){readDocument(context,uri).toString(Charsets.UTF_8)} + val pass=password;password="";model.openVaultData(pass,sealed) + }} + ScreenColumn{ + Text("Private on-device vault",style=MaterialTheme.typography.headlineMedium) + Text("${model.metadata.optInt("count")} variants • ${model.results.size} results. DNA is held in memory until you explicitly save an encrypted vault.") + Row{Checkbox(checked=model.acceptedDisclaimer,onCheckedChange={model.acceptedDisclaimer=it});Text("I understand this is educational research, not medical advice.",style=MaterialTheme.typography.bodySmall)} + Button(onClick=importDNA,enabled=model.acceptedDisclaimer&&!model.busy){Text("Import raw DNA (.txt, .tsv, .csv, .gz)")} + OutlinedTextField(value=password,onValueChange={password=it},label={Text("Vault passphrase")},visualTransformation=PasswordVisualTransformation(),modifier=Modifier.fillMaxWidth()) + Row{Button(onClick={val p=password;password="";model.saveVault(p)},enabled=!model.busy&&password.length>=8){Text("Save")};Spacer(Modifier.width(10.dp));OutlinedButton(onClick={val p=password;password="";model.openVault(p)},enabled=!model.busy&&password.isNotEmpty()){Text("Unlock")};TextButton(onClick=model::clear){Text("Lock")}} + OutlinedButton(onClick={val p=password;password="";model.run("Encrypting portable backup"){val data=model.sealedVault(p);export("monadic-vault.json",data)}},enabled=!model.busy&&password.length>=8){Text("Export encrypted portable vault")} + OutlinedButton(onClick={importVault.launch(arrayOf("application/json","text/*","application/octet-stream"))},enabled=!model.busy&&password.isNotEmpty()){Text("Import portable vault using this passphrase")} + TextButton(onClick={confirmDelete=true}){Text("Delete local vault and clear memory")} + } + if(confirmDelete)AlertDialog(onDismissRequest={confirmDelete=false},title={Text("Delete this device's vault?")},text={Text("This deletes the encrypted local copy and clears in-memory data. Exported backups are unaffected.")},confirmButton={TextButton(onClick={model.deleteVault();confirmDelete=false}){Text("Delete")}},dismissButton={TextButton(onClick={confirmDelete=false}){Text("Cancel")}}) +} + +@Composable private fun SettingsScreen(model: ExplorerModel){ScreenColumn{ + Text("Connection and providers",style=MaterialTheme.typography.headlineMedium) + OutlinedTextField(value=model.backend,onValueChange={model.backend=it},label={Text("Explorer backend HTTPS origin")},modifier=Modifier.fillMaxWidth()) + Text("The backend hosts the research catalog and account services. Your raw DNA stays on device.") + Row{listOf("huggingface","ollama","nilai").forEach{provider->FilterChip(selected=model.provider==provider,onClick={model.selectProvider(provider)},label={Text(provider)})}} + OutlinedTextField(value=model.model,onValueChange={model.model=it},label={Text("Model")},modifier=Modifier.fillMaxWidth()) + OutlinedTextField(value=model.apiKey,onValueChange={model.apiKey=it},label={Text("Your provider API key")},visualTransformation=PasswordVisualTransformation(),modifier=Modifier.fillMaxWidth()) + if(model.provider=="ollama"){OutlinedTextField(value=model.ollamaAddress,onValueChange={model.ollamaAddress=it},label={Text("Ollama hostname")});OutlinedTextField(value=model.ollamaPort,onValueChange={model.ollamaPort=it},label={Text("Ollama port")})} + if(model.provider=="nilai")Text("Leave the key blank to use one-use backend delegation. Prompts go directly from this device to nilAI; only your public key visits the backend.",style=MaterialTheme.typography.bodySmall) + Text("Optional personalization",style=MaterialTheme.typography.titleLarge) + model.profileSchema.forEach { field -> + val key=field.getString("key") + if(field.getString("type")=="select") { + Text(field.getString("label")) + Row(Modifier.horizontalScroll(rememberScrollState())) { field.getJSONArray("options").objects().forEach { option -> + FilterChip(selected=model.profileFields[key]==option.getString("value"),onClick={model.profileFields[key]=option.getString("value")},label={Text(option.getString("label"))}) + } } + } else OutlinedTextField(value=model.profileFields[key].orEmpty(),onValueChange={model.profileFields[key]=it},label={Text(field.getString("label"))},modifier=Modifier.fillMaxWidth()) + } + OutlinedTextField(value=model.profile,onValueChange={model.profile=it},label={Text("Optional personalization context")},modifier=Modifier.fillMaxWidth()) + Button(onClick={model.run("Saving settings"){model.settingsSaved()}},enabled=!model.busy){Text("Save securely")} +}} + +@Composable private fun AccountScreen(model: ExplorerModel){ + val context=LocalContext.current;var promo by remember{mutableStateOf("")} + ScreenColumn{Text("Account and premium",style=MaterialTheme.typography.headlineMedium);Text(model.wallet.ifBlank{"Not signed in"}) + Button(onClick={model.run("Opening secure sign-in"){openBrowser(context,model.beginAuth())}},enabled=!model.busy){Text("Sign in with Dynamic")} + OutlinedButton(onClick=model::refreshSubscription,enabled=!model.busy&&model.wallet.isNotBlank()){Text("Refresh subscription and blockchain payments")} + model.subscription?.let{Text(it.toString(2))} + Button(onClick={model.run("Opening card checkout"){openBrowser(context,model.checkout())}},enabled=!model.busy&&model.wallet.isNotBlank()){Text("Subscribe with card")} + TextButton(onClick={openBrowser(context,model.backend.trimEnd('/')+"/subscribe")}){Text("Manage subscription or pay with a connected wallet")} + OutlinedTextField(value=promo,onValueChange={promo=it},label={Text("Promo code")}) + OutlinedButton(onClick={model.run("Checking promo"){model.applyPromo(promo)}}){Text("Apply code")} + TextButton(onClick=model::signOut){Text("Sign out")} + Text("Payment providers and wallet authorization open in your system browser. No server API keys are embedded in this app.",style=MaterialTheme.typography.bodySmall) + } +} diff --git a/apps/android/app/src/main/res/drawable/ic_explorer.xml b/apps/android/app/src/main/res/drawable/ic_explorer.xml new file mode 100644 index 0000000..ab229da --- /dev/null +++ b/apps/android/app/src/main/res/drawable/ic_explorer.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/android/app/src/main/res/xml/data_extraction_rules.xml b/apps/android/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..ec92aa6 --- /dev/null +++ b/apps/android/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/android/app/src/main/res/xml/network_security_config.xml b/apps/android/app/src/main/res/xml/network_security_config.xml new file mode 100644 index 0000000..a83e9f2 --- /dev/null +++ b/apps/android/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,4 @@ + + + diff --git a/apps/android/app/src/test/java/com/monadicdna/explorer/CoreNativeTest.kt b/apps/android/app/src/test/java/com/monadicdna/explorer/CoreNativeTest.kt new file mode 100644 index 0000000..b051261 --- /dev/null +++ b/apps/android/app/src/test/java/com/monadicdna/explorer/CoreNativeTest.kt @@ -0,0 +1,18 @@ +package com.monadicdna.explorer + +import org.junit.Assert.* +import org.junit.Test + +/** Runs generated Kotlin UniFFI against the host Rust library, not a mock. */ +class CoreNativeTest { + @Test fun parsesGenotypesAndScoresWithRust() { + val parsed=Core.obj("parse_genotype",json("content" to "# 23andMe\nrs1 1 100 AG")) + assertEquals(1,parsed.getInt("validVariants")) + val risk=Core.obj("risk_score",json("genotype" to "AA","riskAllele" to "rs1-A","effectSize" to "1.5","effectType" to "OR")) + assertEquals(2.25,risk.getDouble("score"),0.0) + } + @Test fun invalidOperationsAreRecoverableErrors() { + try { Core.call("unknown-operation");fail("Expected an error") } catch(expected:IllegalStateException) { assertTrue(expected.message!!.contains("Unknown")) } + assertEquals(1,Core.obj("version").getInt("protocol")) + } +} diff --git a/apps/android/app/src/test/java/com/monadicdna/explorer/PublicSampleCoreTest.kt b/apps/android/app/src/test/java/com/monadicdna/explorer/PublicSampleCoreTest.kt new file mode 100644 index 0000000..ec721a6 --- /dev/null +++ b/apps/android/app/src/test/java/com/monadicdna/explorer/PublicSampleCoreTest.kt @@ -0,0 +1,31 @@ +package com.monadicdna.explorer + +import org.junit.Assert.* +import org.junit.Assume.assumeTrue +import org.junit.Test +import org.json.JSONObject +import org.json.JSONArray +import java.io.File + +class PublicSampleCoreTest { + @Test fun fullPublicExportMatchesIndependentReference() { + val folder=File(requireNotNull(System.getProperty("explorer.sample.dir"))) + assumeTrue("Prepare optional full sample first",File(folder,"23andme-public.txt").isFile) + val expected=JSONObject(File(folder,"expected.json").readText()) + val session=(Core.call("session_create") as Number).toLong() + try { + val metadata=Core.importGenotype(session,File(folder,"23andme-public.txt").readBytes(),"23andme-public.txt") + assertEquals(expected.getInt("parsedVariants"),metadata.getInt("count")) + val result=Core.arr("session_analyze",json("session" to session,"studies" to JSONArray(File(folder,"studies.json").readText()),"strict" to true)) + val wanted=expected.getJSONArray("results").objects().associateBy{it.getInt("studyId")} + assertEquals(wanted.size,result.length()) + for(actual in result.objects()) { + val row=wanted.getValue(actual.getInt("studyId")) + for(key in listOf("matchedSnp","userGenotype","effectType","riskLevel"))assertEquals(row.getString(key),actual.getString(key)) + assertEquals(row.getDouble("riskScore"),actual.getDouble("riskScore"),1e-12) + } + val tsv=Core.call("session_export",json("session" to session)) as String + assertEquals(wanted.size,Core.obj("import_results",json("content" to tsv,"fileName" to "sample.tsv")).getJSONArray("results").length()) + } finally { Core.call("session_close",json("session" to session)) } + } +} diff --git a/apps/android/build.gradle.kts b/apps/android/build.gradle.kts new file mode 100644 index 0000000..7d7afed --- /dev/null +++ b/apps/android/build.gradle.kts @@ -0,0 +1,5 @@ +plugins { + id("com.android.application") version "8.9.1" apply false + id("org.jetbrains.kotlin.android") version "2.1.20" apply false + id("org.jetbrains.kotlin.plugin.compose") version "2.1.20" apply false +} diff --git a/apps/android/gradle.properties b/apps/android/gradle.properties new file mode 100644 index 0000000..f86c375 --- /dev/null +++ b/apps/android/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.jvmargs=-Xmx3g -Dfile.encoding=UTF-8 +org.gradle.workers.max=4 +android.useAndroidX=true +kotlin.code.style=official diff --git a/apps/android/gradle/wrapper/gradle-wrapper.jar b/apps/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/apps/android/gradle/wrapper/gradle-wrapper.properties b/apps/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..b00b333 --- /dev/null +++ b/apps/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,9 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=false +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists + +distributionSha256Sum=f397b287023acdba1e9f6fc5ea72d22dd63669d59ed4a289a29b1a76eee151c6 diff --git a/apps/android/gradlew b/apps/android/gradlew new file mode 100755 index 0000000..f5feea6 --- /dev/null +++ b/apps/android/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/apps/android/gradlew.bat b/apps/android/gradlew.bat new file mode 100644 index 0000000..9d21a21 --- /dev/null +++ b/apps/android/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/apps/android/settings.gradle.kts b/apps/android/settings.gradle.kts new file mode 100644 index 0000000..706178a --- /dev/null +++ b/apps/android/settings.gradle.kts @@ -0,0 +1,4 @@ +pluginManagement { repositories { google(); mavenCentral(); gradlePluginPortal() } } +dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS); repositories { google(); mavenCentral() } } +rootProject.name = "Explorer" +include(":app") diff --git a/apps/ios/Explorer/Core.swift b/apps/ios/Explorer/Core.swift new file mode 100644 index 0000000..092bf2c --- /dev/null +++ b/apps/ios/Explorer/Core.swift @@ -0,0 +1,44 @@ +import Foundation + +enum Core { + struct Failure: LocalizedError { let message: String; var errorDescription: String? { message } } + static func importFile(_ session:Int,_ bytes:Data,_ name:String)throws->[String:Any]{ + let response=importGenotype(session:UInt64(session),bytes:bytes,fileName:name) + guard let envelope=try JSONSerialization.jsonObject(with:Data(response.utf8)) as? [String:Any] else{throw Failure(message:"Invalid core response")} + guard envelope["ok"] as? Bool == true else{throw Failure(message:envelope["error"] as? String ?? "Unable to import DNA file")} + guard let metadata=envelope["value"] as? [String:Any] else{throw Failure(message:"Invalid import metadata")} + return metadata + } + static func call(_ operation: String, _ input: Any = NSNull()) throws -> Any { + let data = try JSONSerialization.data(withJSONObject: ["version":1,"operation":operation,"input":input], options: [.sortedKeys]) + let response = coreCall(request: String(decoding:data,as:UTF8.self)) + guard let envelope = try JSONSerialization.jsonObject(with:Data(response.utf8)) as? [String:Any] else { throw Failure(message:"Invalid core response") } + guard envelope["ok"] as? Bool == true else { throw Failure(message:envelope["error"] as? String ?? "Shared core failed") } + return envelope["value"] ?? NSNull() + } + static func object(_ operation: String,_ input: Any = NSNull()) throws -> [String:Any] { + guard let object = try call(operation,input) as? [String:Any] else {throw Failure(message:"Invalid core object")};return object + } + static func array(_ operation: String,_ input: Any = NSNull()) throws -> [[String:Any]] { + guard let array = try call(operation,input) as? [[String:Any]] else {throw Failure(message:"Invalid core array")};return array + } + static func string(_ operation: String,_ input: Any = NSNull()) throws -> String { + guard let string = try call(operation,input) as? String else {throw Failure(message:"Invalid core string")};return string + } +} + +struct Record: Identifiable { + let raw: [String:Any] + var id: Int { (raw["id"] as? Int) ?? (raw["studyId"] as? Int) ?? 0 } + func text(_ key: String,_ fallback: String = "") -> String { raw[key] as? String ?? fallback } + func number(_ key: String) -> Double { (raw[key] as? NSNumber)?.doubleValue ?? 0 } +} + +struct ProfileField: Decodable, Identifiable { + let key:String + let label:String + let type:String + let options:[Option]? + var id:String { key } + struct Option: Decodable, Identifiable { let value:String;let label:String;var id:String{value} } +} diff --git a/apps/ios/Explorer/DeviceStore.swift b/apps/ios/Explorer/DeviceStore.swift new file mode 100644 index 0000000..a6b9dee --- /dev/null +++ b/apps/ios/Explorer/DeviceStore.swift @@ -0,0 +1,27 @@ +import Foundation +import Security + +enum DeviceStore { + private static let service = "com.monadicdna.explorer" + static func put(_ key: String,_ value: String) throws { + let query:[String:Any] = [kSecClass as String:kSecClassGenericPassword,kSecAttrService as String:service,kSecAttrAccount as String:key] + if value.isEmpty { SecItemDelete(query as CFDictionary);return } + let attrs:[String:Any] = [kSecValueData as String:Data(value.utf8),kSecAttrAccessible as String:kSecAttrAccessibleWhenUnlockedThisDeviceOnly] + let status=SecItemUpdate(query as CFDictionary,attrs as CFDictionary) + if status==errSecItemNotFound { + let addStatus=SecItemAdd(query.merging(attrs){_,new in new} as CFDictionary,nil) + guard addStatus==errSecSuccess else{throw Core.Failure(message:"Unable to save securely in Keychain")} + }else if status != errSecSuccess {throw Core.Failure(message:"Unable to update Keychain")} + } + static func get(_ key: String) -> String { + let query:[String:Any] = [kSecClass as String:kSecClassGenericPassword,kSecAttrService as String:service,kSecAttrAccount as String:key,kSecReturnData as String:true,kSecMatchLimit as String:kSecMatchLimitOne] + var item:CFTypeRef? + guard SecItemCopyMatching(query as CFDictionary,&item)==errSecSuccess,let data=item as? Data else{return ""} + return String(decoding:data,as:UTF8.self) + } + static func entropy(_ count: Int) throws -> String { + var bytes=[UInt8](repeating:0,count:count) + guard SecRandomCopyBytes(kSecRandomDefault,count,&bytes)==errSecSuccess else{throw Core.Failure(message:"Secure random generation failed")} + return Data(bytes).base64EncodedString() + } +} diff --git a/apps/ios/Explorer/ExplorerApp.swift b/apps/ios/Explorer/ExplorerApp.swift new file mode 100644 index 0000000..eeae586 --- /dev/null +++ b/apps/ios/Explorer/ExplorerApp.swift @@ -0,0 +1,230 @@ +import SwiftUI +import UniformTypeIdentifiers + +@main struct ExplorerApp: App { + @StateObject private var store=ExplorerStore() + var body: some Scene { WindowGroup { ExplorerView().environmentObject(store).onOpenURL{store.receiveAuth($0)} } } +} + +struct TextExport: FileDocument { + static var readableContentTypes:[UTType] { [.data] } + var data:Data + init(_ text:String=""){data=Data(text.utf8)} + init(configuration:ReadConfiguration)throws{data=configuration.file.regularFileContents ?? Data()} + func fileWrapper(configuration:WriteConfiguration)throws->FileWrapper{FileWrapper(regularFileWithContents:data)} +} + +struct ExplorerView: View { + @EnvironmentObject var store:ExplorerStore + @State private var selectedTab=0 + @State private var importing=false + @State private var importKind="dna" + @State private var exporting=false + @State private var exportDocument=TextExport() + @State private var exportName="monadic-results.tsv" + @State private var vaultPassword="" + func startImport(_ kind:String){importKind=kind;importing=true} + func export(_ name:String,_ text:String){exportName=name;exportDocument=TextExport(text);exporting=true} + var body: some View { + VStack(spacing:0){ + if store.busy{HStack{ProgressView();Text(store.status).font(.caption);Spacer();Button("Cancel",action:store.cancel)}.padding()} + TabView(selection:$selectedTab){ + NavigationStack{HomeView(importDNA:{startImport("dna")},browse:{selectedTab=1})}.tabItem{Label("Home",systemImage:"house")}.tag(0) + NavigationStack{BrowseView()}.tabItem{Label("Browse",systemImage:"magnifyingglass")}.tag(1) + NavigationStack{ResultsView(export:export,importResults:{startImport("results")})}.tabItem{Label("Results",systemImage:"list.bullet")}.tag(2) + NavigationStack{ChatView()}.tabItem{Label("Chat",systemImage:"bubble.left.and.bubble.right")}.tag(3) + NavigationStack{List{ + NavigationLink("Reports"){ReportsView(export:export)} + NavigationLink("On-device vault"){VaultView(password:$vaultPassword,importDNA:{startImport("dna")},importVault:{startImport("vault")},export:export)} + NavigationLink("Connection and provider settings"){SettingsView()} + NavigationLink("Account and premium"){AccountView()} + Section("Supported DNA exports"){Text("23andMe, AncestryDNA, MyHeritage, FTDNA, LivingDNA, Mapmygenome, Monadic DNA and compatible raw files. Gzip archives are supported.")} + }.navigationTitle("More")}.tabItem{Label("More",systemImage:"ellipsis")}.tag(4) + } + } + .sheet(item:$store.selectedStudy){record in NavigationStack{StudyView(record:record).toolbar{ToolbarItem(placement:.confirmationAction){Button("Done"){store.selectedStudy=nil}}}}} + .alert("Explorer",isPresented:Binding(get:{store.error != nil},set:{if !$0{store.error=nil}})){Button("OK"){store.error=nil}}message:{Text(store.error ?? "")} + .fileImporter(isPresented:$importing,allowedContentTypes:[.data]){result in + switch result{ + case .success(let url): + switch importKind{case "results":store.importResults(url);case "vault":let password=vaultPassword;vaultPassword="";store.unlockVault(password,file:url);default:store.importDNA(url)} + case .failure(let error):store.error=error.localizedDescription + } + } + .fileExporter(isPresented:$exporting,document:exportDocument,contentType:.data,defaultFilename:exportName){result in if case .failure(let error)=result{store.error=error.localizedDescription}} + } +} + +struct HomeView:View{ + @EnvironmentObject var store:ExplorerStore + var importDNA:()->Void + var browse:()->Void + var body:some View{ScrollView{VStack(alignment:.leading,spacing:20){ + Text("Your DNA. Your discoveries.").font(.largeTitle.bold()) + Text("Explore genetic research, match your variants on device, and understand associations with private provider-based analysis.") + Toggle("I understand this is educational research, not medical advice.",isOn:$store.acceptedDisclaimer) + Button("Import your DNA",action:importDNA).buttonStyle(.borderedProminent).disabled(!store.acceptedDisclaimer) + Button("Browse studies",action:browse).buttonStyle(.bordered) + Text("\(store.variantCount) variants • \(store.results.count) saved study matches") + if !store.results.isEmpty,let insight=try? Core.object("preview_insight",store.results.map(\.raw)){ + Text(insight["headline"] as? String ?? "").font(.headline) + Text("\(insight["protectiveCount"] as? Int ?? 0) protective associations • \(insight["elevatedCount"] as? Int ?? 0) elevated associations") + } + Text("Associations are not diagnoses or individual health predictions. Odds ratios are relative, not absolute risk; beta values describe trait changes.").font(.footnote).foregroundStyle(.secondary) + }.padding()}.navigationTitle("Monadic DNA")} +} + +struct BrowseView:View{ + @EnvironmentObject var store:ExplorerStore + @State private var query="" + @State private var trait="" + @State private var semantic=true + @State private var offset=0 + var body:some View{VStack{ + Form{ + TextField("Trait, study, gene or SNP",text:$query).autocorrectionDisabled() + TextField("Trait filter (optional)",text:$trait) + Toggle("Semantic search",isOn:$semantic) + Button("Search"){offset=0;store.browse(query,trait,semantic:semantic)}.disabled(store.busy) + }.frame(height:230) + List(store.studies){study in Button{store.selectedStudy=study}label:{VStack(alignment:.leading,spacing:6){Text(study.text("disease_trait")).font(.headline);Text(study.text("study")).font(.subheadline).foregroundStyle(.secondary);Text("\(study.text("study_accession")) • \(study.text("confidenceBand","Research finding"))").font(.caption)}}.tint(.primary)} + HStack{Button("Previous"){offset=max(0,offset-50);store.browse(query,trait,semantic:semantic,offset:offset)}.disabled(offset==0||store.busy);Spacer();Button("Next"){offset+=50;store.browse(query,trait,semantic:semantic,offset:offset)}.disabled(store.studies.isEmpty||store.busy)}.padding() + }.navigationTitle("Browse research")} +} + +struct StudyView:View{ + @EnvironmentObject var store:ExplorerStore + let record:Record + var body:some View{List{ + Section{Text(record.text("disease_trait")).font(.title2.bold());Text(record.text("study"));Button("Match my DNA on device"){store.analyze(record)}.disabled(store.busy)} + if let result=store.results.first(where:{$0.id==record.id}){Section("Your match"){ResultView(record:result)}} + Section("Research details"){ + ForEach([("study_accession","Accession"),("mapped_gene","Genes"),("snps","Variants"),("strongest_snp_risk_allele","Risk allele"),("or_or_beta","OR / beta"),("ci_text","Effect interval"),("p_value","P-value"),("initial_sample_size","Discovery sample"),("replication_sample_size","Replication sample"),("first_author","Author"),("journal","Journal"),("date","Publication date")],id:\.0){key,label in + if !record.text(key).isEmpty{LabeledContent(label,value:record.text(key))} + } + } + if let pmid=Int(record.text("pubmedid")),let url=URL(string:"https://pubmed.ncbi.nlm.nih.gov/\(pmid)/"){Link("Read original publication",destination:url)} + Text("Educational interpretation, not diagnosis. Study ancestry, cohort size, replication and environment affect interpretation.").font(.footnote) + }.navigationTitle("Study")} +} + +struct ResultView:View{ + let record:Record + var evidence:String{(try? Core.object("evidence",record.raw)["label"] as? String) ?? "Research finding"} + var body:some View{VStack(alignment:.leading,spacing:5){Text(record.text("traitName")).font(.headline);Text("\(record.text("matchedSnp")): \(record.text("userGenotype")) • \(record.text("effectType","OR")) \(record.number("riskScore"),specifier:"%.3f")");Text(record.text("riskLevel")).font(.subheadline);Text(evidence).font(.caption).foregroundStyle(.secondary)}} +} + +struct ResultsView:View{ + @EnvironmentObject var store:ExplorerStore + var export:(String,String)->Void + var importResults:()->Void + @State private var filter="" + var body:some View{List{ + Section{ + Text("\(store.results.count) saved study matches") + Button("Run all studies",action:store.runAll).disabled(store.busy) + Button("Export results as TSV"){do{export("monadic-results.tsv",try store.exportResults())}catch{store.error=error.localizedDescription}}.disabled(store.results.isEmpty) + Button("Import saved results",action:importResults) + TextField("Filter saved traits",text:$filter) + } + ForEach(store.results.filter{filter.isEmpty||$0.text("traitName").localizedCaseInsensitiveContains(filter)}){record in ResultView(record:record)} + }.navigationTitle("Your results")} +} + +struct ProviderConsent:View{ + @EnvironmentObject var store:ExplorerStore + var body:some View{Toggle("Allow matched results and profile context to be sent to my selected LLM provider.",isOn:$store.shareResultsWithLLM).font(.footnote)} +} +struct ChatView:View{ + @EnvironmentObject var store:ExplorerStore + @State private var message="" + var body:some View{VStack{ + ProviderConsent().padding() + List(Array(store.messages.enumerated()),id:\.offset){item in VStack(alignment:.leading,spacing:8){Text(item.element.0).font(.caption.bold());Text(.init(item.element.1)).textSelection(.enabled)}} + HStack{TextField("Ask about your findings",text:$message,axis:.vertical).textFieldStyle(.roundedBorder);Button("Send"){store.sendChat(message);message=""}.disabled(store.busy||message.trimmingCharacters(in:.whitespacesAndNewlines).isEmpty)}.padding() + }.navigationTitle("DNA chat")} +} +struct ReportsView:View{ + @EnvironmentObject var store:ExplorerStore + var export:(String,String)->Void + var body:some View{List{ + ProviderConsent() + ForEach(["Overview","Health","Healthspan","Top traits"],id:\.self){kind in Button("Generate \(kind) report"){store.generateReport(kind)}.disabled(store.busy||store.results.isEmpty)} + if !store.report.isEmpty{Section(store.reportTitle){Text(.init(store.report)).textSelection(.enabled);Button("Export Markdown report"){export("monadic-report.md",store.report)}} + if !store.reportQuestions.isEmpty{Section("Ask a follow-up"){ForEach(store.reportQuestions,id:\.self){question in Button(question){store.sendChat(question)}.disabled(store.busy)}}} + }.navigationTitle("Reports")} +} + +struct VaultView:View{ + @EnvironmentObject var store:ExplorerStore + @Binding var password:String + var importDNA:()->Void + var importVault:()->Void + var export:(String,String)->Void + @State private var confirmDelete=false + var body:some View{Form{ + Section("On-device genetic data"){ + Text("\(store.variantCount) variants • \(store.results.count) results. Genetic data stays in memory until you explicitly save an encrypted vault.") + Toggle("I understand this is educational research, not medical advice.",isOn:$store.acceptedDisclaimer) + Button("Import DNA (.txt, .tsv, .csv, .gz)",action:importDNA).disabled(!store.acceptedDisclaimer||store.busy) + } + Section("Encrypted vault"){ + SecureField("Vault passphrase",text:$password).textContentType(.password) + Button("Save encrypted vault"){let p=password;password="";store.saveVault(p)}.disabled(password.count<8||store.busy) + Button("Unlock saved vault"){let p=password;password="";store.unlockVault(p)}.disabled(password.isEmpty||store.busy) + Button("Lock and clear memory",action:store.clear) + Button("Export encrypted portable vault"){ + let p=password;password="";store.work("Encrypting portable vault"){export("monadic-vault.json",try await store.encryptedVault(p))} + }.disabled(password.count<8||store.busy) + Button("Import portable vault using this passphrase",action:importVault).disabled(password.isEmpty||store.busy) + Button("Delete local vault",role:.destructive){confirmDelete=true} + } + }.navigationTitle("Private vault").confirmationDialog("Delete this device's vault and clear memory?",isPresented:$confirmDelete){Button("Delete",role:.destructive){do{try store.deleteVault()}catch{store.error=error.localizedDescription}}}} +} + +struct SettingsView:View{ + @EnvironmentObject var store:ExplorerStore + var body:some View{Form{ + Section("Research and account backend"){ + TextField("HTTPS origin",text:$store.backend).keyboardType(.URL).autocorrectionDisabled().textInputAutocapitalization(.never) + Text("Your raw DNA remains on this device. The backend provides the public research catalog and account services.").font(.footnote) + } + Section("LLM provider"){ + Picker("Provider",selection:Binding(get:{store.provider},set:{store.selectProvider($0)})){Text("HuggingFace").tag("huggingface");Text("Ollama").tag("ollama");Text("nilAI").tag("nilai")} + TextField("Model",text:$store.model).autocorrectionDisabled().textInputAutocapitalization(.never) + SecureField("Your provider API key",text:$store.apiKey) + if store.provider=="ollama"{TextField("Ollama hostname",text:$store.ollamaAddress).autocorrectionDisabled().textInputAutocapitalization(.never);TextField("Ollama port",text:$store.ollamaPort).keyboardType(.numberPad)} + if store.provider=="nilai"{Text("Leave the key blank for one-use backend delegation. Prompts go directly to nilAI; only your public key visits the backend.").font(.footnote)} + } + Section("Optional personalization"){ + ForEach(store.profileSchema){field in + let value=Binding(get:{store.profileFields[field.key] ?? ""},set:{store.profileFields[field.key]=$0}) + if let options=field.options{Picker(field.label,selection:value){ForEach(options){Text($0.label).tag($0.value)}}} + else{TextField(field.label,text:value,axis:.vertical)} + } + TextField("Additional context for reports",text:$store.profile,axis:.vertical) + } + Button("Save securely in Keychain"){do{try store.saveSettings()}catch{store.error=error.localizedDescription}} + }.navigationTitle("Settings")} +} + +struct AccountView:View{ + @EnvironmentObject var store:ExplorerStore + @State private var promo="" + var body:some View{Form{ + Section("Account"){ + Text(store.wallet.isEmpty ? "Not signed in":store.wallet).font(.caption).textSelection(.enabled) + Button("Sign in with Dynamic"){do{try store.beginAuth()}catch{store.error=error.localizedDescription}} + Button("Refresh subscription and blockchain payments",action:store.refreshSubscription).disabled(store.wallet.isEmpty||store.busy) + if let status=store.subscription,let data=try? JSONSerialization.data(withJSONObject:status,options:[.prettyPrinted,.sortedKeys]){Text(String(decoding:data,as:UTF8.self)).font(.caption.monospaced())} + Button("Subscribe with card",action:store.checkout).disabled(store.wallet.isEmpty||store.busy) + if let url=URL(string:store.backend.trimmingCharacters(in:CharacterSet(charactersIn:"/"))+"/subscribe"){Link("Manage subscription or pay with connected wallet",destination:url)} + Button("Sign out"){do{try store.signOut()}catch{store.error=error.localizedDescription}} + } + Section("Promo"){ + TextField("Promo code",text:$promo) + Button("Apply code"){do{try store.applyPromo(promo)}catch{store.error=error.localizedDescription}} + } + Text("Provider checkout and wallet authorization use the system browser. Server API keys are never embedded in this application.").font(.footnote) + }.navigationTitle("Account and premium")} +} diff --git a/apps/ios/Explorer/ExplorerStore.swift b/apps/ios/Explorer/ExplorerStore.swift new file mode 100644 index 0000000..b1de73b --- /dev/null +++ b/apps/ios/Explorer/ExplorerStore.swift @@ -0,0 +1,253 @@ +import Foundation +import SwiftUI +import AuthenticationServices +import UIKit + +@MainActor final class ExplorerStore: NSObject, ObservableObject, ASWebAuthenticationPresentationContextProviding { + @Published var backend=DeviceStore.get("backend").isEmpty ? "https://explorer.monadicdna.com" : DeviceStore.get("backend") + @Published var provider=DeviceStore.get("provider").isEmpty ? "nilai" : DeviceStore.get("provider") + @Published var model=DeviceStore.get("model").isEmpty ? "gemma-4-26B-A4B-it" : DeviceStore.get("model") + @Published var apiKey=DeviceStore.get("api-key-"+(DeviceStore.get("provider").isEmpty ? "nilai":DeviceStore.get("provider"))) + @Published var ollamaAddress=DeviceStore.get("ollama-address").isEmpty ? "localhost" : DeviceStore.get("ollama-address") + @Published var ollamaPort=DeviceStore.get("ollama-port").isEmpty ? "11434" : DeviceStore.get("ollama-port") + @Published var profile=DeviceStore.get("profile") + @Published var profileFields:[String:String]=(try? JSONDecoder().decode([String:String].self,from:Data(DeviceStore.get("profile-fields").utf8))) ?? [:] + var profileSchema:[ProfileField] { + guard let fields=try? Core.call("profile_schema"),let data=try? JSONSerialization.data(withJSONObject:fields) else{return []} + return (try? JSONDecoder().decode([ProfileField].self,from:data)) ?? [] + } + private func profileData()throws->[String:Any]{try Core.object("parse_profile",profileFields)} + @Published var wallet=DeviceStore.get("wallet") + @Published var metadata:[String:Any]=[:] + @Published var studies:[Record]=[] + @Published var results:[Record]=[] + @Published var selectedStudy:Record? + @Published var subscription:[String:Any]? + @Published var busy=false + @Published var status="" + @Published var error:String? + @Published var report="" + @Published var reportTitle="" + @Published var reportQuestions:[String]=[] + @Published var messages:[(String,String)]=[] + @Published var acceptedDisclaimer=false + @Published var shareResultsWithLLM=false + private var authSession:ASWebAuthenticationSession? + private var task:Task? + private(set) var session:Int + override init(){session=(try? Core.call("session_create") as? Int) ?? 0;super.init()} + var variantCount:Int { metadata["count"] as? Int ?? 0 } + func work(_ label:String,_ operation:@escaping @MainActor () async throws -> Void){ + guard !busy else{return} + busy=true;status=label;error=nil + task=Task { defer{busy=false};do{try await operation();status="Complete"}catch is CancellationError{status="Cancelled"}catch{self.error=error.localizedDescription} } + } + func cancel(){task?.cancel()} + func origin() throws -> String { + guard let url=URL(string:backend),url.user==nil,url.password==nil,url.query==nil,url.fragment==nil else{throw Core.Failure(message:"Enter an HTTPS backend origin")} + var allowed=url.scheme=="https" + #if DEBUG + allowed=allowed || (url.scheme=="http" && ["localhost","127.0.0.1"].contains(url.host ?? "")) + #endif + guard allowed else{throw Core.Failure(message:"Use HTTPS (debug also supports the local simulator host)")} + return backend.trimmingCharacters(in:CharacterSet(charactersIn:"/")) + } + func request(_ url:URL,_ body:[String:Any]?=nil,bearer:String="",origin:String?=nil) async throws -> [String:Any] { + var request=URLRequest(url:url);request.timeoutInterval=180;request.setValue("application/json",forHTTPHeaderField:"Accept") + if !bearer.isEmpty{request.setValue("Bearer \(bearer)",forHTTPHeaderField:"Authorization")} + if let origin{request.setValue(origin,forHTTPHeaderField:"Origin")} + if let body{request.httpMethod="POST";request.setValue("application/json",forHTTPHeaderField:"Content-Type");request.httpBody=try JSONSerialization.data(withJSONObject:body)} + let (data,response)=try await URLSession.shared.data(for:request) + guard let http=response as? HTTPURLResponse,(200..<300).contains(http.statusCode) else{throw Core.Failure(message:"Request failed. Check connection, account and provider settings.")} + guard let object=try JSONSerialization.jsonObject(with:data) as? [String:Any] else{throw Core.Failure(message:"Invalid server response")};return object + } + func api(_ path:String,_ body:[String:Any]?=nil) async throws -> [String:Any] { + let base=try origin();guard let url=URL(string:base+path) else{throw Core.Failure(message:"Invalid backend URL")} + return try await request(url,body,bearer:DeviceStore.get("auth-token")) + } + func saveSettings() throws { + _=try origin() + _=try profileData() + try DeviceStore.put("profile-fields",String(decoding:try JSONSerialization.data(withJSONObject:profileFields),as:UTF8.self)) + for (key,value) in [("backend",backend),("provider",provider),("model",model),("api-key-"+provider,apiKey),("ollama-address",ollamaAddress),("ollama-port",ollamaPort),("profile",profile)]{try DeviceStore.put(key,value)} + } + func selectProvider(_ next:String){do{try DeviceStore.put("api-key-"+provider,apiKey);provider=next;apiKey=DeviceStore.get("api-key-"+next)}catch{self.error="Unable to switch secure provider settings"}} + func browse(_ query:String,_ trait:String,semantic:Bool,offset:Int=0){work("Loading studies"){ + var components=URLComponents();components.queryItems=[URLQueryItem(name:"search",value:query),URLQueryItem(name:"trait",value:trait),URLQueryItem(name:"searchMode",value:semantic ? "similarity":"exact"),URLQueryItem(name:"limit",value:"50"),URLQueryItem(name:"offset",value:String(offset))] + let data=try await self.api("/api/studies?"+(components.percentEncodedQuery ?? "")) + self.studies=(data["data"] as? [[String:Any]] ?? []).map(Record.init) + }} + func readFile(_ url:URL) throws -> Data { + let accessible=url.startAccessingSecurityScopedResource();defer{if accessible{url.stopAccessingSecurityScopedResource()}} + let size=try url.resourceValues(forKeys:[.fileSizeKey]).fileSize ?? 0 + guard size<=150*1024*1024 else{throw Core.Failure(message:"File exceeds 150 MB")} + let data=try Data(contentsOf:url);guard data.count<=150*1024*1024 else{throw Core.Failure(message:"File exceeds 150 MB")};return data + } + func importDNA(_ url:URL){work("Importing DNA on device"){ + guard self.acceptedDisclaimer else{throw Core.Failure(message:"Accept the educational-use disclaimer first")} + let data=try self.readFile(url);let session=self.session;let name=url.lastPathComponent + let metadata=try await Task.detached{try Core.importFile(session,data,name)}.value + try Task.checkCancellation();self.metadata=metadata + self.results=[] + }} + func refreshResults() throws{results=try Core.array("session_results",["session":session]).map(Record.init)} + func analyze(_ record:Record){work("Matching DNA on device"){ + guard self.variantCount>0 else{throw Core.Failure(message:"Import your DNA first")} + let session=self.session;let input:[String:Any]=["session":session,"studies":[record.raw],"now":ISO8601DateFormatter().string(from:Date())] + _=try await Task.detached{try Core.call("session_analyze",input)}.value + try self.refreshResults() + }} + func runAll(){work("Analyzing catalog on device"){ + guard self.variantCount>0 else{throw Core.Failure(message:"Import your DNA first")} + var offset=0 + while true{ + try Task.checkCancellation() + let page=try await self.api("/api/studies?fetchAll=true&searchMode=exact&excludeLowQuality=false&excludeMissingGenotype=false&limit=1000&offset=\(offset)") + let rows=page["data"] as? [[String:Any]] ?? [];if rows.isEmpty{break} + let input:[String:Any]=["session":self.session,"studies":rows,"strict":true,"now":ISO8601DateFormatter().string(from:Date())] + _=try await Task.detached{try Core.call("session_analyze",input)}.value + offset+=1000;self.status="Analyzed up to \(offset) catalog records" + if rows.count<1000{break} + } + try self.refreshResults() + }} + func clear(){task?.cancel();_ = try? Core.call("session_close",["session":session]);session=(try? Core.call("session_create") as? Int) ?? 0;metadata=[:];results=[];messages=[];report="";reportQuestions=[]} + func exportResults() throws -> String{try Core.string("session_export",["session":session])} + func importResults(_ url:URL){work("Importing results"){ + let data=try self.readFile(url) + _=try Core.call("session_import_results",["session":self.session,"content":String(decoding:data,as:UTF8.self),"fileName":url.lastPathComponent,"now":ISO8601DateFormatter().string(from:Date())]);try self.refreshResults() + }} + private var vaultURL:URL { FileManager.default.urls(for:.applicationSupportDirectory,in:.userDomainMask)[0].appendingPathComponent("monadic-vault.json") } + func encryptedVault(_ password:String) async throws -> String { + guard password.count>=8 else{throw Core.Failure(message:"Use a passphrase with at least eight characters")} + let snapshot=try Core.string("session_snapshot",["session":session]);let salt=try DeviceStore.entropy(16);let iv=try DeviceStore.entropy(12) + let encrypted=try await Task.detached{try Core.object("seal",["plaintext":snapshot,"password":password,"salt":salt,"iv":iv,"iterations":600000])}.value + try Task.checkCancellation() + return String(decoding:try JSONSerialization.data(withJSONObject:encrypted),as:UTF8.self) + } + func saveVault(_ password:String){work("Encrypting vault"){ + let encrypted=try await self.encryptedVault(password);let url=self.vaultURL + try FileManager.default.createDirectory(at:url.deletingLastPathComponent(),withIntermediateDirectories:true) + try Data(encrypted.utf8).write(to:url,options:[.atomic,.completeFileProtection]) + var file=url;var resources=URLResourceValues();resources.isExcludedFromBackup=true;try file.setResourceValues(resources) + }} + func unlockVault(_ password:String,file:URL?=nil){work("Unlocking vault"){ + let data=try file.map(self.readFile) ?? Data(contentsOf:self.vaultURL) + guard var encrypted=try JSONSerialization.jsonObject(with:data) as? [String:Any] else{throw Core.Failure(message:"Invalid encrypted vault")} + encrypted["password"]=password;let session=self.session + let metadata=try await Task.detached{let snapshot=try Core.string("open",encrypted);return try Core.object("session_restore",["session":session,"snapshot":snapshot])}.value + try Task.checkCancellation();self.metadata=metadata + try self.refreshResults() + }} + func deleteVault() throws {if FileManager.default.fileExists(atPath:vaultURL.path){try FileManager.default.removeItem(at:vaultURL)};clear()} + func beginAuth() throws { + let pair=try Core.object("auth_keypair",["entropy":DeviceStore.entropy(32)]) + let state=try DeviceStore.entropy(32).replacingOccurrences(of:"+",with:"-").replacingOccurrences(of:"/",with:"_").replacingOccurrences(of:"=",with:"") + let pending:[String:Any]=["privateKey":pair["privateKey"]!,"state":state,"expires":Date().timeIntervalSince1970*1000+300000] + try DeviceStore.put("pending-auth",String(decoding:try JSONSerialization.data(withJSONObject:pending),as:UTF8.self)) + var components=URLComponents(string:try origin()+"/mobile-auth")!;components.queryItems=[URLQueryItem(name:"state",value:state),URLQueryItem(name:"publicKey",value:pair["publicKey"] as? String)] + guard let url=components.url else{throw Core.Failure(message:"Invalid sign-in request")} + let session=ASWebAuthenticationSession(url:url,callbackURLScheme:"monadicexplorer"){[weak self] callback,error in + Task{@MainActor in if let callback{self?.receiveAuth(callback)}else if let error{self?.error=error.localizedDescription};self?.authSession=nil} + } + session.presentationContextProvider=self;authSession=session + guard session.start() else{throw Core.Failure(message:"Unable to open system sign-in")} + } + func presentationAnchor(for session:ASWebAuthenticationSession)->ASPresentationAnchor{ + UIApplication.shared.connectedScenes.compactMap{$0 as? UIWindowScene}.flatMap(\.windows).first(where:{$0.isKeyWindow}) ?? ASPresentationAnchor() + } + func receiveAuth(_ url:URL){work("Completing sign-in"){ + guard url.scheme=="monadicexplorer",url.host=="auth",let pending=try JSONSerialization.jsonObject(with:Data(DeviceStore.get("pending-auth").utf8)) as? [String:Any],let state=pending["state"] as? String else{throw Core.Failure(message:"Invalid sign-in callback")} + let query=URLComponents(url:url,resolvingAgainstBaseURL:false) + guard query?.queryItems?.first(where:{$0.name=="state"})?.value==state,(pending["expires"] as? Double ?? 0)>=Date().timeIntervalSince1970*1000 else{throw Core.Failure(message:"Expired or mismatched sign-in response")} + let fragment=URLComponents(string:"https://callback/?"+(query?.fragment ?? "")) + guard var encoded=fragment?.queryItems?.first(where:{$0.name=="payload"})?.value else{throw Core.Failure(message:"Missing encrypted sign-in response")} + encoded=encoded.replacingOccurrences(of:"-",with:"+").replacingOccurrences(of:"_",with:"/");encoded+=String(repeating:"=",count:(4-encoded.count%4)%4) + guard let data=Data(base64Encoded:encoded),var sealed=try JSONSerialization.jsonObject(with:data) as? [String:Any] else{throw Core.Failure(message:"Invalid encrypted sign-in response")} + sealed["privateKey"]=pending["privateKey"];sealed["state"]=state + let plaintext=try Core.string("auth_open",sealed) + guard let auth=try JSONSerialization.jsonObject(with:Data(plaintext.utf8)) as? [String:Any],let wallet=auth["walletAddress"] as? String,wallet.range(of:"^0x[a-fA-F0-9]{40}$",options:.regularExpression) != nil,let token=auth["token"] as? String,(auth["expiresAt"] as? Double ?? 0)>=Date().timeIntervalSince1970*1000 else{throw Core.Failure(message:"Invalid or expired account response")} + try DeviceStore.put("auth-token",token);try DeviceStore.put("wallet",wallet);try DeviceStore.put("pending-auth","");self.wallet=wallet + self.subscription=try await self.api("/api/check-subscription",["walletAddress":wallet]) + }} + func signOut() throws {for key in ["auth-token","wallet","pending-auth"]{try DeviceStore.put(key,"")};wallet="";subscription=nil} + func refreshSubscription(){work("Refreshing subscription"){guard !self.wallet.isEmpty else{throw Core.Failure(message:"Sign in first")};self.subscription=try await self.api("/api/check-subscription",["walletAddress":self.wallet])}} + func checkout(){work("Opening card checkout"){ + guard !self.wallet.isEmpty else{throw Core.Failure(message:"Sign in first")} + let response=try await self.api("/api/stripe/create-checkout",["walletAddress":self.wallet]) + guard let value=response["url"] as? String,let url=URL(string:value),url.scheme=="https" else{throw Core.Failure(message:"Invalid checkout URL")} + await UIApplication.shared.open(url) + }} + func applyPromo(_ code:String) throws {let response=try Core.object("promo",code);guard response["valid"] as? Bool == true else{throw Core.Failure(message:response["message"] as? String ?? "Invalid promo")};try DeviceStore.put("promo",code);status=response["message"] as? String ?? ""} + private func requireAccess(_ kind:String) async throws { + var access=try Core.object("feature_access",["kind":kind,"promo":DeviceStore.get("promo")]) + if access["allowed"] as? Bool == true{return} + guard !wallet.isEmpty else{throw Core.Failure(message:"Sign in or apply a premium promo code in Account first")} + subscription=try await api("/api/check-subscription",["walletAddress":wallet]) + let active=(subscription?["subscription"] as? [String:Any])?["isActive"] as? Bool ?? false + access=try Core.object("feature_access",["kind":kind,"promo":DeviceStore.get("promo"),"activeSubscription":active]) + if access["allowed"] as? Bool == true{return} + guard let type=access["reportType"] as? String else{throw Core.Failure(message:"An active subscription or premium promo is required for chat")} + let passes=try await api("/api/report-access",["walletAddress":wallet]) + guard ((passes["availableReports"] as? [String:Any])?[type] as? Int ?? 0)>0 else{throw Core.Failure(message:"Subscribe or buy a \(kind) report pass on the website, then try again")} + _=try await api("/api/report-access",["walletAddress":wallet,"reportType":type,"action":"consume"]) + } + private func complete(_ messages:[[String:Any]]) async throws -> String { + let config=try Core.object("llm_config",["provider":provider,"model":model,"huggingfaceApiKey":apiKey,"ollamaAddress":ollamaAddress,"ollamaPort":Int(ollamaPort) ?? 11434]) + let endpoint=(config["endpoint"] as? String ?? "").trimmingCharacters(in:CharacterSet(charactersIn:"/"));let identifier=config["identifier"] as? String ?? model + if provider=="ollama"{ + let data=try await request(URL(string:endpoint+"/api/chat")!,["model":identifier,"messages":messages,"stream":false]) + guard let message=data["message"] as? [String:Any],let content=message["content"] as? String else{throw Core.Failure(message:"Invalid Ollama response")};return content + } + if provider=="huggingface" && apiKey.isEmpty{throw Core.Failure(message:"Enter your own provider API key in Settings")} + let bearer:String + if provider=="nilai"{bearer=try await nilaiAuthorization(endpoint)}else{bearer=apiKey} + let data=try await request(URL(string:endpoint+"/chat/completions")!,["model":identifier,"messages":messages,"stream":false],bearer:bearer) + guard let choices=data["choices"] as? [[String:Any]],let message=choices.first?["message"] as? [String:Any],let content=message["content"] as? String else{throw Core.Failure(message:"Invalid provider response")};return content + } + private func nilaiAuthorization(_ endpoint:String)async throws->String{ + let (data,response)=try await URLSession.shared.data(from:URL(string:endpoint+"/public_key")!) + guard (response as? HTTPURLResponse)?.statusCode==200 else{throw Core.Failure(message:"Unable to retrieve nilAI public key")} + let serverKey=String(decoding:data,as:UTF8.self).trimmingCharacters(in:.whitespacesAndNewlines) + let pair:[String:Any] + if apiKey.isEmpty{pair=try Core.object("nilai_keypair",["entropy":DeviceStore.entropy(32)])}else{pair=["privateKey":apiKey]} + var input:[String:Any]=["privateKey":pair["privateKey"]!,"serverKey":serverKey,"nonce":try DeviceStore.entropy(16),"rootNonce":try DeviceStore.entropy(16),"now":Int(Date().timeIntervalSince1970)] + if apiKey.isEmpty{ + let delegation=try await api("/api/nilai-delegation",["delegationRequest":["public_key":pair["publicKey"]!]]) + guard let envelope=delegation["delegationToken"] as? [String:Any],let token=envelope["delegation_token"] as? String else{throw Core.Failure(message:"Invalid nilAI delegation response")} + input["delegation"]=token + } + return try Core.string("nilai_invocation",input) + } + func sendChat(_ message:String){work("Asking selected provider"){ + guard self.shareResultsWithLLM else{throw Core.Failure(message:"Confirm sharing matched results with the selected provider first")} + try await self.requireAccess("Chat") + let prompt=try Core.object("report_prompt",["kind":"DNA chat","results":self.results.map(\.raw),"customization":try self.profileData(),"context":self.profile]) + var messages=prompt["messages"] as? [[String:Any]] ?? [] + messages+=self.messages.map{["role":$0.0,"content":$0.1]};messages.append(["role":"user","content":message]) + let response=try await self.complete(messages);self.messages.append(("user",message));self.messages.append(("assistant",response)) + }} + func generateReport(_ kind:String){work("Generating report"){ + guard self.shareResultsWithLLM else{throw Core.Failure(message:"Confirm sharing results with the selected provider first")} + guard !self.results.isEmpty else{throw Core.Failure(message:"Analyze studies or import results first")} + try await self.requireAccess(kind) + if kind != "Overview" { + let prompt=try Core.object("report_prompt",["kind":kind,"results":self.results.map(\.raw),"customization":try self.profileData(),"context":self.profile]) + let content=try await self.complete(prompt["messages"] as? [[String:Any]] ?? []) + let parsed=try Core.object("extract_report",content) + self.reportTitle=kind;self.report=parsed["report"] as? String ?? content;self.reportQuestions=parsed["questions"] as? [String] ?? [] + return + } + let groups=try Core.call("partition_results",["results":self.results.map(\.raw),"groups":(self.results.count+249)/250]) as? [[[String:Any]]] ?? [] + let userContext=try Core.string("user_context",self.profileData())+"\n"+self.profile + var summaries:[String]=[] + for (index,group) in groups.enumerated(){ + try Task.checkCancellation();self.status="Report group \(index+1)/\(groups.count)" + let compact=try Core.string("format_results",group) + let prompt=try Core.string("render_prompt",["name":"generateMapPrompt","values":["groupNumber":index+1,"totalGroups":groups.count,"resultsInGroup":group.count,"totalResults":self.results.count,"compactResults":compact,"userContext":userContext]]) + summaries.append(try await self.complete([["role":"user","content":prompt]])) + } + let reduce=try Core.string("render_prompt",["name":"generateReducePrompt","values":["groupSummaries":summaries,"userContext":userContext]]) + self.reportTitle=kind;self.report=try await self.complete([["role":"user","content":reduce]]) + }} +} diff --git a/apps/ios/Explorer/Info.plist b/apps/ios/Explorer/Info.plist new file mode 100644 index 0000000..a834238 --- /dev/null +++ b/apps/ios/Explorer/Info.plist @@ -0,0 +1,15 @@ + + + +CFBundleDisplayNameMonadic DNA Explorer +CFBundleIdentifier$(PRODUCT_BUNDLE_IDENTIFIER) +CFBundleExecutable$(EXECUTABLE_NAME) +CFBundleName$(PRODUCT_NAME) +CFBundlePackageTypeAPPL +CFBundleShortVersionString$(MARKETING_VERSION) +CFBundleVersion$(CURRENT_PROJECT_VERSION) +UILaunchScreen +CFBundleURLTypesCFBundleURLSchemesmonadicexplorerCFBundleURLNamecom.monadicdna.explorer.auth +NSAppTransportSecurityNSAllowsLocalNetworking +UISupportedInterfaceOrientationsUIInterfaceOrientationPortraitUIInterfaceOrientationLandscapeLeftUIInterfaceOrientationLandscapeRight + diff --git a/apps/ios/ExplorerTests/CoreTests.swift b/apps/ios/ExplorerTests/CoreTests.swift new file mode 100644 index 0000000..e742c21 --- /dev/null +++ b/apps/ios/ExplorerTests/CoreTests.swift @@ -0,0 +1,19 @@ +import XCTest +@testable import Explorer + +final class CoreTests:XCTestCase{ + func testNativeParserAndRisk()throws{ + let parsed=try Core.object("parse_genotype",["content":"# 23andMe\nrs1 1 100 AG"]) + XCTAssertEqual(parsed["validVariants"] as? Int,1) + let result=try Core.object("risk_score",["genotype":"AA","riskAllele":"rs1-A","effectSize":"1.5","effectType":"OR"]) + XCTAssertEqual(result["score"] as? Double,2.25) + } + func testAuthStateIsBoundToEnvelope()throws{ + let pair=try Core.object("auth_keypair",["entropy":DeviceStore.entropy(32)]) + var envelope=try Core.object("auth_seal",["publicKey":pair["publicKey"]!,"entropy":DeviceStore.entropy(32),"iv":DeviceStore.entropy(12),"state":"expected","plaintext":"test-only"]) + envelope["privateKey"]=pair["privateKey"];envelope["state"]="expected" + XCTAssertEqual(try Core.string("auth_open",envelope),"test-only") + envelope["state"]="wrong" + XCTAssertThrowsError(try Core.call("auth_open",envelope)) + } +} diff --git a/apps/ios/ExplorerTests/PublicSampleTests.swift b/apps/ios/ExplorerTests/PublicSampleTests.swift new file mode 100644 index 0000000..5309455 --- /dev/null +++ b/apps/ios/ExplorerTests/PublicSampleTests.swift @@ -0,0 +1,48 @@ +import XCTest +@testable import Explorer + +final class PublicSampleTests:XCTestCase { + @MainActor func testAppFileImportAndPublishedResults() async throws { + guard let folder=Bundle(for:Self.self).url(forResource:"TestData",withExtension:nil) else{throw XCTSkip("Prepare public sample resources first")} + let expected=try XCTUnwrap(JSONSerialization.jsonObject(with:Data(contentsOf:folder.appendingPathComponent("expected.json"))) as? [String:Any]) + let wanted=try XCTUnwrap((expected["results"] as? [[String:Any]])?.first) + let studies=try XCTUnwrap(JSONSerialization.jsonObject(with:Data(contentsOf:folder.appendingPathComponent("studies.json"))) as? [[String:Any]]) + let study=try XCTUnwrap(studies.first{($0["id"] as? Int)==(wanted["studyId"] as? Int)}) + let store=ExplorerStore() + defer{store.clear();_ = try? Core.call("session_close",["session":store.session])} + store.acceptedDisclaimer=true + store.importDNA(folder.appendingPathComponent("23andme-public.txt")) + let deadline=Date().addingTimeInterval(180) + while store.busy && Date() 5x as \"large effect, likely a specialized or rare-variant study; treat as uncertain.\" Do not anchor conclusions on it.\n- Do not recommend clinical tests, doctors, or lifestyle changes.\n- Distinguish between well-replicated signals (strong p-value label, named gene) and single suggestive hits.\n- 700-900 words total", + "healthinstructionWithoutHistory": "\nWrite a report organized by GENETIC MECHANISM (4-5 mechanisms). For each:\n- Name specific variants and explain effect sizes in plain, concrete terms\n- Identify what biological process is involved at a molecular level\n- Flag any OR > 5x as a large effect likely from a specialized study\n\nThen add:\n**Protective signals**: Associations where the allele is linked to lower rates in population studies. Use hedged language.\n**Most notable findings**: 4-5 bullets of the most striking discoveries.\n**What to investigate further**: 3-4 research threads the user could explore. Specific genes, pathways, or cross-trait connections with well-studied literature.\n\n**Hypotheses about you** (4 hypotheses, each 2-3 sentences)\nBased on the signal patterns in these results, write 4 specific hypotheses about this person's biology or lived experience. Each should be a concrete statement grounded in the strongest signals. Frame each as \"People with this signal pattern tend to...\" or \"This combination of variants is consistent with someone who...\". Be direct and specific. Reference specific genes or findings from this report.\n\nLanguage rules (strictly enforced):\n- These are population-level statistics. Write \"population studies associate this variant with X\", never \"your genome does X\" or deterministic personal claims.\n- Do not recommend clinical tests, doctors, or lifestyle changes.\n\n800-1000 words.", + "healthTemplate": "You are a genetic counselor writing a personalized health insights report. Your goal is to surface insights the user does not already know from their symptoms alone.\n{userCtx}\n{conditionSection}\n{sections}\n\nDATA FORMAT: Trait | Effect size (↑ elevated / ↓ protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence | [matched condition]\n{instruction}\n\nAfter the report, append exactly this block (required, verbatim format):\n\nCHAT_QUESTIONS:\n- [a specific follow-up question about a gene, SNP, or mechanism from this report]\n- [a question about a cross-trait pattern or surprising finding]\n- [a question about a protective signal or novel finding outside the health history]\n- [a question about what the user's specific genotype means for one of the key findings]\n- [a question about a research thread worth exploring]\n\nQuestions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them.", + "healthspanhealthHistoryNoteWithHistory": "Use the health history to anchor the report: note where genetic signals reinforce known conditions, where they diverge, and which findings the user is unlikely to have encountered from their symptoms alone.", + "healthspanhealthHistoryNoteWithoutHistory": "No health history provided. Focus on the strongest and most surprising signals.", + "healthspanHistoryLine": "Connect explicitly to the user's health history when relevant", + "healthspanNoHistoryLine": "Focus on what is most surprising or actionable from a healthspan perspective", + "healthspanTemplate": "You are writing a personalized genetic healthspan report. The reader is not a scientist but is curious and health-conscious. Write the way a knowledgeable friend who happens to be a geneticist would explain this: clear, specific, and honest about uncertainty. These are population-level statistics; use \"population studies associate\" / \"carriers show\" throughout, never deterministic claims.\n{userCtx}\n{healthHistorySection}\nDATA FORMAT: Trait | Effect size (↑ elevated / ↓ protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence\n\n{domainSections}\n\n{healthHistoryNote}\n\nStructure the report as follows. Do NOT use the domain names as section headers:\n\n**Your aging profile** (write this first)\n2-3 sentences. What are the 1-2 most important things to understand about this person's genetic aging biology? Be direct and specific. This is the executive summary a non-scientist will actually remember.\n\n**Key findings** (3-4 findings, each as a named header + 2-3 paragraphs)\nChoose the 3-4 most important and interesting genetic themes across ALL domains combined. These should be the signals that matter most for long-term healthspan — the things a person would actually want to know and think about. Each finding should:\n- Have a short, plain-English header (e.g., \"Metabolic-cardiovascular tension\", \"Cognitive aging and APOE\", \"Immune system tuning\")\n- Open with a one-sentence plain statement of what the finding is\n- Explain the biology in 2 paragraphs: what the gene or pathway does, what the signal pattern suggests, and why it matters for aging\n- {historyLine}\n- Skip pseudogenes (LINC, LOC, MIR) entirely\n\n**Other signals worth noting** (1 short paragraph)\nBriefly mention 2-3 additional signals from domains not covered in Key findings. One sentence each. This gives breadth without diluting the main findings.\n\n**What to understand about your aging biology**\n4 genes, each with a 1-sentence hook explaining WHY it matters for how the body ages, not just what trait it is associated with. Write these for someone who will go and search for more.\n\n**Hypotheses about you** (4 hypotheses, each 2-3 sentences)\nBased on the patterns across these healthspan signals, write 4 specific hypotheses about this person's biology or lived experience. Each should be a concrete statement grounded in the findings. Frame each as \"People with this signal pattern tend to...\" or \"This combination of variants is consistent with someone who...\". Be direct and specific. These should feel like insights, not disclaimers. Reference specific genes or findings from this report.\n\nStyle rules:\n- No domain-name headers in the body of the report.\n- The \"Key findings\" headers should describe the biological theme, not the domain (e.g., \"The metabolic-inflammatory axis\" not \"Cardiovascular\").\n- Write for someone who wants to understand their biology, not catalog it.\n- When citing a specific variant, include the rsID where available (e.g., \"rs429358, an APOE variant\"). Where the genotype is informative, note it: \"heterozygous for the risk allele\" vs \"homozygous.\"\n- Population-level language; never \"your genome does X.\"\n- Do not recommend clinical tests, doctors, or lifestyle changes.\n- 800-1000 words total\n\nAfter the report, append exactly this block (required, verbatim format):\n\nCHAT_QUESTIONS:\n- [a specific question about a key finding, gene, or SNP from this report]\n- [a question about how two signals or domains connect]\n- [a question about what a specific genotype or protective signal means]\n- [a question about the biology behind a surprising or cross-domain finding]\n- [a question about a gene worth researching further]\n\nQuestions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them.", + "topTraitsTemplate": "You are writing a personalized genetics report. These are the 50 strongest genetic signals by effect size across all results.\n{userCtx}\n\nDATA FORMAT: Trait | Effect size (↑ elevated / ↓ protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence\n\n{sections}\n\nYour job is to build a hypothesis about this person's biological character from their strongest signals. Not a gene-by-gene tour; a portrait. What kind of metabolism, immune system, and brain does population-level data suggest this profile is associated with? What is the most interesting or unexpected thing about this combination of signals?\n\nStructure:\n**Biological portrait** (3-4 sentences)\nOpen with a direct hypothesis: what does this combination of strong signals most plausibly suggest about how this person's body works? Be specific and opinionated, and frame it as a hypothesis drawn from population statistics, not a fact. Mention the 1-2 most important signals by name.\n\n**Key themes** (3-4 themes, each as a short header + 2 paragraphs)\nChoose the 3-4 most important biological stories in these results. Each theme should:\n- Start with a one-sentence hypothesis about what the signals in this theme collectively suggest about this person's biology\n- Second paragraph: what do the specific genes/SNPs do, and why do they cluster; what does this combination mean together\n- Include specific rsIDs and genotypes where informative\n- Mention both elevated and protective signals within the theme where they interact\n- Skip pseudogenes (LINC, LOC, MIR)\n\n**What stands out** (1 paragraph)\nThe most surprising, counterintuitive, or medically interesting finding in these results: something the person is unlikely to have noticed on their own. Explain why it matters.\n\n**Hypotheses about you** (4 hypotheses, each 2-3 sentences)\nBased on the patterns in these signals, write 4 specific, testable hypotheses about this person's biology or lived experience. Each should be a concrete statement about something that may be true about them — how they feel, how their body tends to work, what they may notice about themselves — grounded in the strongest signals. Frame each as \"People with this signal pattern tend to...\" or \"This combination of variants is consistent with someone who...\". Be direct and specific. These should feel like insights, not disclaimers.\n\nStyle rules:\n- Write for someone who wants to understand their own biology, not a textbook\n- Population-level language throughout: \"population studies associate\", \"carriers tend to show\", never \"your genome does X\"\n- Be specific: name the genes, cite rsIDs, note genotypes where the user's specific variant is informative\n- Do not recommend clinical tests, doctors, or lifestyle changes\n- 700-900 words total\n\nAfter the report, append exactly this block (required, verbatim format):\n\nCHAT_QUESTIONS:\n- [a question about the most prominent gene or pathway from this report]\n- [a question about how two of the top signals relate to each other]\n- [a question about one of the protective signals or a surprising finding]\n- [a question about what a specific genotype means for one of the key themes]\n\nQuestions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them.", + "generateMapPrompt": "Here are genetic traits from GWAS Catalog matched by the Monadic DNA Explorer tool. This is the map phase.\n Please analyze health, lifestyle, appearance, personality, rare disease and fun facts for the reduce phase.\n Fun facts should actually be fun and not serious medical stuff.\n Do not include tutorial, recommendations, next steps. The output is not meant for the user. Rather, the next reduce phase will be handled by an LLM.\n Remember to base relevance regardless of risk level, i.e. include increased, decreased or neutral entries, so the user gets a holistic picture.\n Output text with no tables or any fancy formatting.\n CRITICAL: Do not comment on SNPs and genes I do not have. Stick to the results and do not speculate about the effect of any SNPs or genes. \n Back up each assertion with a specific reference to SNPs actually present in the dataset. \n\nUSER:{userContext}\n\nBATCH: {groupNumber} of {totalGroups} ({resultsInGroup} variants)\n\nDATA FORMAT (one variant per line):\nFormat: Trait Name|Risk Score|Risk Level|Effect Type|SNP|Gene\n\nWhere:\n - Trait Name: Full name of the genetic trait/condition\n - Risk Score: Numerical risk score (actual OR value or beta coefficient)\n - Risk Level: i=increased, d=decreased, n=neutral\n - Effect Type: OR (odds ratio) or beta (beta coefficient)\n - SNP: The specific genetic variant (rs number)\n - Gene: The associated gene name\n\nIMPORTANT: Effect Type tells you how to interpret Risk Score:\n - OR: Odds ratio (1.0 = neutral, >1.0 = increased risk, <1.0 = protective)\n Example: 1.12 = 12% increased risk, 0.85 = 15% decreased risk\n - beta: Beta coefficient (context-dependent, sign indicates direction)\n\nExamples:\n Cortical surface area|1.15|i|OR|rs12345678|NFILZ\n Type 2 diabetes|0.85|d|OR|rs7903146|TCF7L2\n Body mass index|0.05|i|beta|rs9939609|FTO\n\nDATA:\n\n{compactResults}\n", + "generateReducePrompt": "Here are batched analyses of genetic traits from GWAS Catalog matched by the Monadic DNA Explorer tool. I am {userContext}\n\nPlease summarize and produce a report (health, diet, lifestyle, appearance, personality, fun facts, rare disease) suitable for personal genomics users. \n\nFun facts should actually be fun and not serious medical stuff. \n\nMinimize specific medical recommendation or testing recommendations as we do not want to flood the medical system with unnecessary costs. \n\nOutput text with no tables or any fancy formatting. Section headings are ok. \n\nCRITICAL: Do not comment on SNPs and genes I do not have. Stick to the results and do not speculate about the effect of any SNPs or genes.\n\n{summariesText}", + "systemPrompts": { + "health": "You are a genetic epidemiologist writing an educational report about population-level GWAS associations. These data are statistical patterns from large cohorts; they are not individual predictions or diagnoses. Maintain appropriate epistemic humility throughout: write \"population studies associate this variant with X\" or \"carriers of this allele show Y in cohort data\", never \"your genome does X\" or \"this is driving your condition.\" Do not convert population odds ratios into statements about what is happening in this individual's body. Do not use LaTeX or math notation. Do not recommend clinical tests, doctors, or healthcare appointments. Do not repeat what the user told you about their own health history as if it is a novel finding.", + "healthspan": "You are a science writer with deep genetics knowledge. Write engagingly for a reader who understands GWAS but wants insight, not inventory. Use population-level language (\"population studies associate\", \"carriers show\") but keep it fluid, not bureaucratic. Never add a disclaimer paragraph at the top; focus entirely on what is scientifically interesting. Do not recommend clinical tests, doctors, or healthcare appointments.", + "toptraits": "You are a science writer with deep genetics knowledge. Write engagingly for a reader who understands GWAS but wants insight, not inventory. Use population-level language (\"population studies associate\", \"carriers show\") but keep it fluid. Never add a disclaimer paragraph at the top. Do not recommend clinical tests, doctors, or healthcare appointments." + } +} diff --git a/crates/explorer-core/src/crypto.rs b/crates/explorer-core/src/crypto.rs new file mode 100644 index 0000000..ea72696 --- /dev/null +++ b/crates/explorer-core/src/crypto.rs @@ -0,0 +1,132 @@ +use crate::text; +use aes_gcm::{ + aead::{Aead, KeyInit, Payload}, + Aes256Gcm, Nonce, +}; +use base64::{ + engine::general_purpose::{STANDARD, URL_SAFE_NO_PAD}, + Engine, +}; +use md5::Md5; +use serde_json::{json, Value}; +use sha2::{Digest, Sha256}; +use zeroize::Zeroizing; + +pub fn file_hash(s: &str) -> String { + format!("{:x}", Md5::digest(s.as_bytes())) +} +fn bytes(v: &Value, key: &str) -> Result, String> { + let s = text(v, key); + STANDARD + .decode(s) + .or_else(|_| URL_SAFE_NO_PAD.decode(s)) + .map_err(|_| format!("Invalid base64 field: {key}")) +} +fn sized(v: &Value, key: &str) -> Result<[u8; N], String> { + bytes(v, key)? + .try_into() + .map_err(|_| format!("{key} must be {N} bytes")) +} +pub fn seal(v: &Value) -> Result { + let salt = sized::<16>(v, "salt")?; + let iv = sized::<12>(v, "iv")?; + let iterations = v["iterations"].as_u64().unwrap_or(100000); + if !(100000..=2000000).contains(&iterations) { + return Err("Unsupported PBKDF2 iteration count".into()); + } + let mut key = Zeroizing::new([0u8; 32]); + pbkdf2::pbkdf2_hmac::( + text(v, "password").as_bytes(), + &salt, + iterations as u32, + &mut *key, + ); + let cipher = Aes256Gcm::new_from_slice(&*key).map_err(|_| "Invalid key")?; + let encrypted = cipher + .encrypt(Nonce::from_slice(&iv), text(v, "plaintext").as_bytes()) + .map_err(|_| "Encryption failed")?; + Ok( + json!({"ciphertext":STANDARD.encode(encrypted),"iv":STANDARD.encode(iv),"salt":STANDARD.encode(salt),"iterations":iterations}), + ) +} +pub fn open(v: &Value) -> Result { + let salt = sized::<16>(v, "salt")?; + let iv = sized::<12>(v, "iv")?; + let encrypted = bytes(v, "ciphertext")?; + let iterations = v["iterations"].as_u64().unwrap_or(100000); + if !(100000..=2000000).contains(&iterations) { + return Err("Unsupported PBKDF2 iteration count".into()); + } + let mut key = Zeroizing::new([0u8; 32]); + pbkdf2::pbkdf2_hmac::( + text(v, "password").as_bytes(), + &salt, + iterations as u32, + &mut *key, + ); + let cipher = Aes256Gcm::new_from_slice(&*key).map_err(|_| "Invalid key")?; + let plain = cipher + .decrypt(Nonce::from_slice(&iv), encrypted.as_slice()) + .map_err(|_| "Decryption failed - incorrect password")?; + Ok(json!( + String::from_utf8(plain).map_err(|_| "Invalid plaintext encoding")? + )) +} +pub fn auth_keypair(v: &Value) -> Result { + let secret = x25519_dalek::StaticSecret::from(sized::<32>(v, "entropy")?); + let public = x25519_dalek::PublicKey::from(&secret); + Ok( + json!({"privateKey":URL_SAFE_NO_PAD.encode(secret.to_bytes()),"publicKey":URL_SAFE_NO_PAD.encode(public.as_bytes())}), + ) +} +fn auth_key( + secret: &x25519_dalek::StaticSecret, + public: [u8; 32], +) -> Result, String> { + let shared = secret.diffie_hellman(&x25519_dalek::PublicKey::from(public)); + if !shared.was_contributory() { + return Err("Invalid auth public key".into()); + } + let mut hash = Sha256::new(); + hash.update(b"Monadic DNA mobile auth v1"); + hash.update(shared.as_bytes()); + Ok(Zeroizing::new(hash.finalize().into())) +} +pub fn auth_seal(v: &Value) -> Result { + let secret = x25519_dalek::StaticSecret::from(sized::<32>(v, "entropy")?); + let public = x25519_dalek::PublicKey::from(&secret); + let key = auth_key(&secret, sized::<32>(v, "publicKey")?)?; + let nonce = sized::<12>(v, "iv")?; + let cipher = Aes256Gcm::new_from_slice(&*key).map_err(|_| "Invalid key")?; + let ciphertext = cipher + .encrypt( + Nonce::from_slice(&nonce), + Payload { + msg: text(v, "plaintext").as_bytes(), + aad: text(v, "state").as_bytes(), + }, + ) + .map_err(|_| "Auth encryption failed")?; + Ok( + json!({"publicKey":URL_SAFE_NO_PAD.encode(public.as_bytes()),"iv":URL_SAFE_NO_PAD.encode(nonce),"ciphertext":URL_SAFE_NO_PAD.encode(ciphertext)}), + ) +} +pub fn auth_open(v: &Value) -> Result { + let secret = x25519_dalek::StaticSecret::from(sized::<32>(v, "privateKey")?); + let key = auth_key(&secret, sized::<32>(v, "publicKey")?)?; + let nonce = sized::<12>(v, "iv")?; + let encrypted = bytes(v, "ciphertext")?; + let cipher = Aes256Gcm::new_from_slice(&*key).map_err(|_| "Invalid key")?; + let plain = cipher + .decrypt( + Nonce::from_slice(&nonce), + Payload { + msg: &encrypted, + aad: text(v, "state").as_bytes(), + }, + ) + .map_err(|_| "Auth response rejected")?; + Ok(json!( + String::from_utf8(plain).map_err(|_| "Invalid auth response")? + )) +} diff --git a/crates/explorer-core/src/files.rs b/crates/explorer-core/src/files.rs new file mode 100644 index 0000000..c0609e0 --- /dev/null +++ b/crates/explorer-core/src/files.rs @@ -0,0 +1,47 @@ +use crate::text; +use base64::{engine::general_purpose::STANDARD, Engine}; +use serde_json::Value; +use std::io::Read; +pub fn decode(v: &Value) -> Result { + let bytes = STANDARD + .decode(text(v, "bytes")) + .map_err(|_| "Invalid file bytes")?; + decode_bytes(bytes) +} +pub fn decode_bytes(bytes: Vec) -> Result { + if bytes.len() > 150 * 1024 * 1024 { + return Err("File exceeds 150 MB".into()); + } + let decoded = if bytes.starts_with(&[0x1f, 0x8b]) { + let mut out = Vec::new(); + let mut remaining = bytes.as_slice(); + loop { + if !remaining.starts_with(&[0x1f, 0x8b]) { + // Some provider exports append small garbage trailers. Preserve + // web compatibility without repeatedly inflating the whole file. + if remaining.len() <= 16 * 1024 { + break; + } + return Err("Invalid gzip trailer".into()); + } + let limit = 250 * 1024 * 1024 + 1 - out.len(); + let mut decoder = flate2::bufread::GzDecoder::new(remaining); + decoder + .by_ref() + .take(limit as u64) + .read_to_end(&mut out) + .map_err(|_| "Invalid gzip file")?; + if out.len() > 250 * 1024 * 1024 { + return Err("Expanded file exceeds 250 MB".into()); + } + remaining = decoder.into_inner(); + if remaining.is_empty() { + break; + } + } + out + } else { + bytes + }; + String::from_utf8(decoded).map_err(|_| "File is not valid UTF-8".into()) +} diff --git a/crates/explorer-core/src/genotype.rs b/crates/explorer-core/src/genotype.rs new file mode 100644 index 0000000..be41538 --- /dev/null +++ b/crates/explorer-core/src/genotype.rs @@ -0,0 +1,352 @@ +use serde::Serialize; +use serde_json::{json, Value}; + +#[derive(Serialize)] +struct Variant { + rsid: String, + chromosome: String, + position: u64, + genotype: String, +} + +fn provider(content: &str) -> Option<&'static str> { + let p = content + .chars() + .take(4000) + .collect::() + .to_lowercase(); + [ + ("living dna", "livingdna"), + ("mapmygenome", "mapmygenome"), + ("myheritage", "myheritage"), + ("familytreedna", "ftdna"), + ("family tree dna", "ftdna"), + ("famfinder", "ftdna"), + ("ancestrydna", "ancestrydna"), + ("ancestry.com", "ancestrydna"), + ("23andme", "23andme"), + ("monadic dna", "monadic"), + ] + .into_iter() + .find(|(key, _)| p.contains(key)) + .map(|(_, v)| v) +} +fn strip(s: &str) -> String { + s.trim().replace('"', "") +} +fn chromosome(s: &str) -> bool { + matches!(s, "X" | "Y" | "MT" | "M" | "26") + || s.parse::() + .is_ok_and(|n| (1..=22).contains(&n) && n.to_string() == s) +} +fn position(s: &str) -> Option { + s.trim_start() + .chars() + .take_while(|c| c.is_ascii_digit()) + .collect::() + .parse() + .ok() +} +fn monadic_header(s: &str) -> bool { + let upper = strip(s).to_uppercase(); + let normalized = upper.split_whitespace().collect::>().join("\t"); + upper.starts_with("RSID,CHROMOSOME,POSITION,RESULT") + || upper.starts_with("RSID,CHROMOSOME,POSITION,GENOTYPE") + || ((upper.contains(',') || upper.contains('\t')) + && (normalized.starts_with("RSID\tCHROMOSOME\tPOSITION\tRESULT") + || normalized.starts_with("RSID\tCHROMOSOME\tPOSITION\tGENOTYPE"))) +} +fn map_header(s: &str) -> bool { + let cols = s + .trim() + .split('\t') + .map(|s| strip(s).to_lowercase()) + .collect::>(); + let has = |s: &str| cols.iter().any(|v| v == s); + (has("rsid") || has("snp name") || has("snp.name")) + && (has("chr") || has("chromosome")) + && has("position") + && has("allele1...plus") + && has("allele2...plus") +} +fn error(kind: &str, header: bool) -> Value { + let message=match (kind,header){ + ("monadic",true)=>"No valid Monadic DNA header found. Expected: RSID,CHROMOSOME,POSITION,RESULT".into(), + ("ancestrydna",true)=>"No valid AncestryDNA header found. Expected header with rsid, chromosome, position columns.".into(), + ("mapmygenome",true)=>"No valid Mapmygenome header found. Expected Illumina-style SNP table with plus-strand allele columns.".into(), + _=>format!("No valid genotype data found in file. Please ensure the file is in {} format.",match kind{"monadic"=>"Monadic DNA","ancestrydna"=>"AncestryDNA","mapmygenome"=>"Mapmygenome",_=>"23andMe"}), + }; + json!({"success":false,"error":message}) +} +fn row(rsid: &str, chr: &str, pos: u64, genotype: &str) -> Variant { + Variant { + rsid: rsid.into(), + chromosome: chr.into(), + position: pos, + genotype: genotype.into(), + } +} + +fn parse_kind(content: &str, kind: &str, compact: bool) -> Value { + let mut rows = Vec::new(); + let mut total = 0; + let mut header = kind == "23andme"; + let mut delimiter = if kind == "monadic" { ',' } else { '\t' }; + let mut idx = [0usize, 1, 2, 3, 4]; + for line in content.lines().map(str::trim).filter(|s| !s.is_empty()) { + if !header { + match kind { + "monadic" => { + if line.starts_with('#') { + continue; + } + if monadic_header(line) { + header = true; + delimiter = if line.contains('\t') { '\t' } else { ',' }; + } + } + "mapmygenome" => { + if map_header(line) { + header = true; + let cols = line + .split('\t') + .map(|s| strip(s).to_lowercase()) + .collect::>(); + idx = [ + cols.iter() + .position(|c| { + ["rsid", "snp name", "snp.name"].contains(&c.as_str()) + }) + .unwrap(), + cols.iter() + .position(|c| ["chr", "chromosome"].contains(&c.as_str())) + .unwrap(), + cols.iter().position(|c| c == "position").unwrap(), + cols.iter().position(|c| c == "allele1...plus").unwrap(), + cols.iter().position(|c| c == "allele2...plus").unwrap(), + ]; + } + } + _ => { + let candidate = line.strip_prefix('#').map(str::trim).unwrap_or(line); + let lower = candidate.to_lowercase(); + let is_header = if line.starts_with('#') { + (lower.contains("rsid") || lower.contains("name")) + && lower.contains("chromosome") + && lower.contains("position") + && lower.contains("allele") + } else { + lower.contains("rsid") + && lower.contains("chromosome") + && lower.contains("position") + }; + if is_header { + header = true; + delimiter = if candidate.contains('\t') { '\t' } else { ',' }; + let cols = candidate + .split(delimiter) + .map(|s| strip(s).to_lowercase()) + .collect::>(); + idx[3] = cols + .iter() + .position(|c| { + c.contains("allele1") + || c.contains("allele 1") + || c.contains("allele_1") + || c.ends_with("allele") + }) + .unwrap_or(3); + idx[4] = cols + .iter() + .position(|c| { + c.contains("allele2") + || c.contains("allele 2") + || c.contains("allele_2") + }) + .unwrap_or(4); + } + } + } + continue; + } + if (kind == "23andme" || kind == "monadic") && line.starts_with('#') { + continue; + } + total += 1; + if kind == "23andme" { + let cols = line.split_whitespace().collect::>(); + if cols.len() < 4 { + continue; + } + let (rsid, chr) = (cols[0], cols[1]); + let Some(pos) = position(cols[2]) else { + continue; + }; + if !rsid.starts_with("rs") || !chromosome(chr) || pos == 0 { + continue; + } + let mut gt = cols[3].to_string(); + if cols.len() >= 5 && gt.len() == 1 && cols[4].len() == 1 { + gt.push_str(cols[4]); + } + if gt == "-" || gt == "--" { + rows.push(row(rsid, chr, pos, "--")); + continue; + } + if gt.len() != 2 || !gt.chars().all(|c| "ATGCID-".contains(c)) { + continue; + } + rows.push(row(rsid, chr, pos, >)); + continue; + } + let raw = line.split(delimiter).map(strip).collect::>(); + let cols = if kind == "ancestrydna" { + raw.into_iter() + .filter(|v| !v.is_empty()) + .collect::>() + } else { + raw + }; + if kind == "monadic" { + if cols.len() < 4 { + continue; + } + let Some(pos) = position(&cols[2]) else { + continue; + }; + let gt = &cols[3]; + if !cols[0].starts_with("rs") + || gt.len() != 2 + || !gt.chars().all(|c| "ATGC-".contains(c)) + { + continue; + } + rows.push(row(&cols[0], &cols[1], pos, gt)); + continue; + } + if cols.len() <= idx[0].max(idx[1]).max(idx[2]).max(idx[3]) { + continue; + } + let (rsid, chr) = (&cols[idx[0]], &cols[idx[1]]); + let Some(pos) = position(&cols[idx[2]]) else { + continue; + }; + if (!rsid.starts_with("rs") + && !(kind == "ancestrydna" + && !rsid.is_empty() + && rsid.chars().all(|c| c.is_ascii_digit()))) + || !chromosome(chr) + || pos == 0 + { + continue; + } + let a1 = cols + .get(idx[3]) + .map(String::as_str) + .filter(|s| !s.is_empty()) + .unwrap_or("0"); + let a2 = cols.get(idx[4]).map(String::as_str).unwrap_or(""); + if kind == "ancestrydna" && a2.is_empty() && a1.len() == 2 { + if a1.chars().all(|c| "ATGCID-".contains(c)) { + rows.push(row(rsid, if chr == "M" { "MT" } else { chr }, pos, a1)); + } + continue; + } + if kind == "mapmygenome" && ((a1 == "--" && a2 == "--") || (a1 == "-" && a2 == "-")) { + rows.push(row(rsid, chr, pos, "--")); + continue; + } + let a2 = if a2.is_empty() { "0" } else { a2 }; + if a1.len() != 1 + || a2.len() != 1 + || !a1.chars().chain(a2.chars()).all(|c| "ATGCID0-".contains(c)) + { + continue; + } + let gt = if a1 == "0" || a2 == "0" { + "--".to_string() + } else { + format!("{a1}{a2}") + }; + let chr = if kind == "ancestrydna" && (chr == "M" || chr == "26") { + "MT" + } else { + chr + }; + rows.push(row(rsid, chr, pos, >)); + } + if !header { + return error(kind, true); + } + if rows.is_empty() { + return error(kind, false); + } + let detected = if kind == "mapmygenome" { + "mapmygenome" + } else { + provider(content).unwrap_or(kind) + }; + if compact { + let count = rows.len(); + let genotypes = rows + .into_iter() + .map(|row| (row.rsid, Value::String(row.genotype))) + .collect::>(); + json!({"success":true,"totalVariants":total,"validVariants":count,"genotypes":genotypes,"detectedFormat":detected}) + } else { + json!({"success":true,"totalVariants":total,"validVariants":rows.len(),"data":rows,"detectedFormat":detected}) + } +} + +pub fn parse(content: &str, format: &str) -> Value { + parse_mode(content, format, false) +} +pub fn parse_mode(content: &str, format: &str, compact: bool) -> Value { + let content = content + .trim_start_matches('\u{feff}') + .replace('\0', "") + .replace("\r\n", "\n") + .replace('\r', "\n"); + if ["23andme", "monadic", "ancestrydna", "mapmygenome"].contains(&format) { + return parse_kind(&content, format, compact); + } + let lines = content.lines().take(50).collect::>(); + if lines.iter().any(|l| map_header(l)) { + return parse_kind(&content, "mapmygenome", compact); + } + if lines.iter().any(|l| monadic_header(l)) { + return parse_kind(&content, "monadic", compact); + } + if lines.iter().any(|l| { + let l = l.trim(); + let lower = l.to_lowercase(); + !l.starts_with('#') + && lower.contains("rsid") + && lower.contains("chromosome") + && lower.contains("position") + }) { + return parse_kind(&content, "ancestrydna", compact); + } + if lines.iter().any(|l| l.trim().starts_with('#')) { + if lines.iter().any(|l| { + let s = l.trim().to_lowercase(); + s.starts_with('#') + && (s.contains("rsid") || s.contains("name")) + && s.contains("chromosome") + && s.contains("allele") + }) { + let result = parse_kind(&content, "ancestrydna", compact); + if result["success"] == true { + return result; + } + } + return parse_kind(&content, "23andme", compact); + } + for kind in ["23andme", "ancestrydna", "monadic"] { + let result = parse_kind(&content, kind, compact); + if result["success"] == true { + return result; + } + } + json!({"success":false,"error":"Unable to detect file format. Supported formats include 23andMe, AncestryDNA, MyHeritage, FTDNA, LivingDNA, and compatible raw DNA exports."}) +} diff --git a/crates/explorer-core/src/lib.rs b/crates/explorer-core/src/lib.rs new file mode 100644 index 0000000..220517c --- /dev/null +++ b/crates/explorer-core/src/lib.rs @@ -0,0 +1,159 @@ +//! Portable client domain logic. No HTTP, filesystem, UI, or OS key storage. +//! All platforms use the same versioned JSON protocol over WASM or UniFFI. +mod crypto; +mod files; +mod genotype; +mod llm; +mod nilai; +mod preview; +mod quality; +mod reports; +mod results; +mod risk; +mod session; + +use serde_json::{json, Value}; + +#[cfg(feature = "ffi")] +uniffi::setup_scaffolding!(); + +pub(crate) fn text<'a>(v: &'a Value, k: &str) -> &'a str { + v.get(k).and_then(Value::as_str).unwrap_or("") +} +pub(crate) fn array(v: &Value) -> &[Value] { + v.as_array().map(Vec::as_slice).unwrap_or(&[]) +} + +pub fn dispatch(operation: &str, input: Value) -> Result { + match operation { + "version" => Ok(json!({"protocol":1,"core":env!("CARGO_PKG_VERSION")})), + "parse_genotype" => Ok(genotype::parse( + text(&input, "content"), + text(&input, "format"), + )), + "decode_file" => Ok(json!(files::decode(&input)?)), + "parse_variant_ids" => Ok(json!(risk::variants(input.as_str().unwrap_or("")))), + "valid_genotype" => Ok(json!(risk::valid(input.as_str().unwrap_or("")))), + "effect" => Ok(risk::effect(text(&input, "value"), text(&input, "ci"))), + "risk_score" => Ok(risk::score( + text(&input, "genotype"), + text(&input, "riskAllele"), + text(&input, "effectSize"), + text(&input, "effectType"), + )), + "analyze_study" => Ok(risk::analyze(&input)), + "parse_sample_size" => Ok(json!(quality::sample_size(input.as_str().unwrap_or("")))), + "parse_p_value" => Ok(json!(quality::p_value(input.as_str().unwrap_or("")))), + "quality_flags" => Ok(quality::flags(&input)), + "evidence" => Ok(quality::evidence(&input)), + "prime" => Ok(json!(quality::prime(input.as_u64().unwrap_or(0)))), + "delicate_prime" => Ok(json!(quality::delicate(input.as_u64().unwrap_or(0)))), + "promo" => Ok(quality::promo(input.as_str().unwrap_or(""))), + "feature_access" => { + let promo = quality::promo(text(&input, "promo")); + let premium = input["activeSubscription"] == true + || (promo["valid"] == true && promo["discount"] == 0); + let kind = text(&input, "kind"); + let report_type = match kind { + "Overview" => Some("overview"), + "Healthspan" => Some("healthspan"), + "Top traits" => Some("top_traits"), + _ => None, + }; + Ok(json!({"allowed":kind == "Health" || premium,"reportType":report_type})) + } + "file_hash" => Ok(json!(crypto::file_hash(input.as_str().unwrap_or("")))), + "export_results" => Ok(json!(results::export(array(&input)))), + "import_results" => results::import(&input), + "overview_statistics" => Ok(reports::statistics(array(&input))), + "partition_results" => reports::partition(&input), + "format_results" => Ok(json!(reports::format_results(array(&input)))), + "report_prompt" => Ok(reports::prompt(&input)), + "select_report" => Ok(reports::select(&input)), + "report_rules" => Ok(reports::rules().clone()), + "user_context" => Ok(json!(reports::context(&input))), + "profile_schema" => Ok(reports::profile_schema()), + "parse_profile" => reports::parse_profile(&input), + "preview_category" => Ok(preview::classify(&input)), + "preview_select" => Ok(preview::select(&input)), + "preview_insight" => Ok(preview::insight(&input)), + "render_prompt" => reports::render(&input), + "extract_report" => Ok(reports::extract(&input)), + "llm_config" => Ok(llm::config(&input)), + "nilai_keypair" => nilai::keypair(&input), + "nilai_info" => nilai::info(&input), + "nilai_invocation" => nilai::invocation(&input), + "seal" => crypto::seal(&input), + "open" => crypto::open(&input), + "auth_keypair" => crypto::auth_keypair(&input), + "auth_seal" => crypto::auth_seal(&input), + "auth_open" => crypto::auth_open(&input), + op if op.starts_with("session_") => session::dispatch(op, input), + _ => Err(format!("Unknown core operation: {operation}")), + } +} + +#[cfg_attr(feature = "ffi", uniffi::export)] +pub fn core_call(request: String) -> String { + let result = serde_json::from_str::(&request) + .map_err(|e| e.to_string()) + .and_then(|request| { + if request.get("version").and_then(Value::as_u64) != Some(1) { + return Err("Unsupported core protocol version".into()); + } + dispatch( + text(&request, "operation"), + request.get("input").cloned().unwrap_or(Value::Null), + ) + }); + envelope(result) +} + +fn envelope(result: Result) -> String { + match result { + Ok(value) => json!({"ok":true,"value":value}).to_string(), + Err(error) => json!({"ok":false,"error":error}).to_string(), + } +} + +/// Transfer large native files as bytes instead of building a base64 JSON string. +/// Parsing, gzip bounds, hashing and session state remain shared with WASM. +#[cfg_attr(feature = "ffi", uniffi::export)] +pub fn import_genotype(session: u64, bytes: Vec, file_name: String) -> String { + envelope(files::decode_bytes(bytes).and_then(|content| { + session::dispatch( + "session_import", + json!({"session":session,"content":content,"fileName":file_name}), + ) + })) +} + +// Import-free WASM ABI: synchronous on browsers, Node SSR and web workers. +// Input/output are UTF-8; callers own input allocations and copy output before +// the next call. Native platforms call core_call through generated UniFFI. +#[cfg(target_arch = "wasm32")] +mod wasm { + use std::cell::RefCell; + thread_local! { static OUTPUT: RefCell> = const { RefCell::new(Vec::new()) }; } + #[no_mangle] + pub extern "C" fn explorer_alloc(len: usize) -> *mut u8 { + Box::into_raw(vec![0u8; len].into_boxed_slice()) as *mut u8 + } + #[no_mangle] + pub unsafe extern "C" fn explorer_free(ptr: *mut u8, len: usize) { + drop(Box::from_raw(std::ptr::slice_from_raw_parts_mut(ptr, len))); + } + #[no_mangle] + pub unsafe extern "C" fn explorer_call(ptr: *const u8, len: usize) -> *const u8 { + let input = String::from_utf8_lossy(std::slice::from_raw_parts(ptr, len)); + OUTPUT.with(|out| { + let mut out = out.borrow_mut(); + *out = super::core_call(input.into_owned()).into_bytes(); + out.as_ptr() + }) + } + #[no_mangle] + pub extern "C" fn explorer_result_len() -> usize { + OUTPUT.with(|out| out.borrow().len()) + } +} diff --git a/crates/explorer-core/src/llm.rs b/crates/explorer-core/src/llm.rs new file mode 100644 index 0000000..d85e997 --- /dev/null +++ b/crates/explorer-core/src/llm.rs @@ -0,0 +1,55 @@ +use crate::text; +use serde_json::{json, Value}; +pub fn config(v: &Value) -> Value { + let provider = match text(v, "provider") { + "ollama" => "ollama", + "huggingface" => "huggingface", + _ => "nilai", + }; + let model = if text(v, "model").is_empty() { + "gemma-4-26B-A4B-it" + } else { + text(v, "model") + }; + let identifier = if model == "custom" && !text(v, "customModel").is_empty() { + text(v, "customModel").to_string() + } else { + match provider { + "nilai" if model == "gemma-4-26B-A4B-it" => "google/gemma-4-26B-A4B-it".into(), + "huggingface" => { + let name = if model == "gemma-4-26B-A4B-it" { + "google/gemma-4-26B-A4B-it" + } else { + model + }; + if name.contains(':') { + name.into() + } else { + format!("{name}:together") + } + } + _ => model.into(), + } + }; + let endpoint = match provider { + "ollama" => format!( + "http://{}:{}", + if text(v, "ollamaAddress").is_empty() { + "localhost" + } else { + text(v, "ollamaAddress") + }, + v["ollamaPort"].as_u64().filter(|p| *p > 0).unwrap_or(11434) + ), + "huggingface" => "https://router.huggingface.co/v1".into(), + _ => "https://api.nilai.nillion.network/nuc/v1/".into(), + }; + let validation = if provider == "huggingface" && text(v, "huggingfaceApiKey").is_empty() { + json!({"valid":false,"error":"HuggingFace API key is required"}) + } else if model == "custom" && text(v, "customModel").trim().is_empty() { + json!({"valid":false,"error":"Custom model name is required when \"Custom...\" is selected"}) + } else { + json!({"valid":true}) + }; + json!({"provider":provider,"model":model,"identifier":identifier,"endpoint":endpoint,"displayName":match provider{"ollama"=>"Ollama (Local)","huggingface"=>"HuggingFace",_=>"nilAI"},"models":["gemma-4-26B-A4B-it"],"validation":validation}) +} diff --git a/crates/explorer-core/src/nilai.rs b/crates/explorer-core/src/nilai.rs new file mode 100644 index 0000000..cb94f11 --- /dev/null +++ b/crates/explorer-core/src/nilai.rs @@ -0,0 +1,151 @@ +//! NUC ES256K authentication, interoperable with @nillion/nuc. +//! Hosts supply CSPRNG nonces, time, HTTP transport and OS-bound key storage. +use crate::text; +use base64::{ + engine::general_purpose::{STANDARD, URL_SAFE_NO_PAD}, + Engine, +}; +use k256::ecdsa::{ + signature::{Signer, Verifier}, + Signature, SigningKey, VerifyingKey, +}; +use serde_json::{json, Value}; +use sha2::{Digest, Sha256}; +use zeroize::Zeroizing; +fn hex(bytes: &[u8]) -> String { + bytes.iter().map(|b| format!("{b:02x}")).collect() +} +fn unhex(s: &str) -> Result, String> { + let s = s.strip_prefix("0x").unwrap_or(s); + if !s.is_ascii() || s.len() % 2 != 0 { + return Err("Invalid NUC key".into()); + } + (0..s.len()) + .step_by(2) + .map(|i| u8::from_str_radix(&s[i..i + 2], 16).map_err(|_| "Invalid NUC key".into())) + .collect() +} +fn key(s: &str) -> Result { + let raw = Zeroizing::new(unhex(s)?); + SigningKey::from_slice(&raw).map_err(|_| "Invalid nilAI private key".into()) +} +fn parse(token: &str) -> Result { + let parts = token.split('.').collect::>(); + if parts.len() != 3 { + return Err("Invalid NUC token".into()); + } + let header: Value = serde_json::from_slice( + &URL_SAFE_NO_PAD + .decode(parts[0]) + .map_err(|_| "Invalid NUC header")?, + ) + .map_err(|_| "Invalid NUC header")?; + if header["alg"] != "ES256K" { + return Err("Unsupported NUC signature algorithm".into()); + } + let body: Value = serde_json::from_slice( + &URL_SAFE_NO_PAD + .decode(parts[1]) + .map_err(|_| "Invalid NUC payload")?, + ) + .map_err(|_| "Invalid NUC payload")?; + let issuer = text(&body, "iss") + .strip_prefix("did:nil:") + .ok_or("Invalid NUC issuer")?; + let verify = + VerifyingKey::from_sec1_bytes(&unhex(issuer)?).map_err(|_| "Invalid NUC issuer key")?; + let signature = Signature::from_slice( + &URL_SAFE_NO_PAD + .decode(parts[2]) + .map_err(|_| "Invalid NUC signature")?, + ) + .map_err(|_| "Invalid NUC signature")?; + verify + .verify(format!("{}.{}", parts[0], parts[1]).as_bytes(), &signature) + .map_err(|_| "NUC signature verification failed")?; + Ok(body) +} +fn sign(payload: &Value, key: &SigningKey) -> String { + let message = format!( + "{}.{}", + URL_SAFE_NO_PAD.encode(br#"{"alg":"ES256K"}"#), + URL_SAFE_NO_PAD.encode(payload.to_string()) + ); + let signature: Signature = key.sign(message.as_bytes()); + format!("{message}.{}", URL_SAFE_NO_PAD.encode(signature.to_bytes())) +} +pub fn keypair(v: &Value) -> Result { + let bytes = Zeroizing::new( + STANDARD + .decode(text(v, "entropy")) + .map_err(|_| "Invalid entropy")?, + ); + let key = SigningKey::from_slice(&bytes).map_err(|_| "Invalid entropy for secp256k1")?; + Ok( + json!({"privateKey":hex(&key.to_bytes()),"publicKey":hex(key.verifying_key().to_encoded_point(true).as_bytes())}), + ) +} +pub fn info(v: &Value) -> Result { + let parts = v.as_str().unwrap_or("").split('/').collect::>(); + let body = parse(parts[0])?; + let mut expires = u64::MAX; + for token in &parts { + let p = parse(token)?; + if let Some(exp) = p["exp"].as_u64() { + expires = expires.min(exp); + } + } + Ok(json!({"expiresAt":expires,"audience":body["aud"]})) +} +pub fn invocation(v: &Value) -> Result { + let signing = key(text(v, "privateKey"))?; + let did = format!( + "did:nil:{}", + hex(signing.verifying_key().to_encoded_point(true).as_bytes()) + ); + let public = STANDARD + .decode(text(v, "serverKey").trim()) + .map_err(|_| "Invalid nilAI server key")?; + VerifyingKey::from_sec1_bytes(&public).map_err(|_| "Invalid nilAI server key")?; + let server_did = format!("did:nil:{}", hex(&public)); + let now = v["now"].as_u64().ok_or("Current time is required")?; + let nonce = STANDARD + .decode(text(v, "nonce")) + .map_err(|_| "Invalid nonce")?; + if nonce.len() != 16 { + return Err("Nonce must be 16 bytes".into()); + } + let proof = if text(v, "delegation").is_empty() { + let root_nonce = STANDARD + .decode(text(v, "rootNonce")) + .map_err(|_| "Invalid root nonce")?; + if root_nonce.len() != 16 { + return Err("Root nonce must be 16 bytes".into()); + } + let expires = now.checked_add(3600).ok_or("Invalid timestamp")?; + sign( + &json!({"iss":did,"aud":did,"sub":did,"exp":expires,"cmd":"/nil/ai/generate","pol":[],"nonce":hex(&root_nonce)}), + &signing, + ) + } else { + text(v, "delegation").into() + }; + let tokens = proof.split('/').collect::>(); + let body = parse(tokens[0])?; + if body["aud"] != did || body["cmd"] != "/nil/ai/generate" || !body["pol"].is_array() { + return Err("Delegation does not authorize this device".into()); + } + for token in &tokens { + let p = parse(token)?; + if p["exp"].as_u64().is_some_and(|exp| exp <= now) + || p["nbf"].as_u64().is_some_and(|nbf| nbf > now) + { + return Err("NUC delegation expired or not yet valid".into()); + } + } + let invocation = sign( + &json!({"iss":did,"aud":server_did,"sub":body["sub"],"cmd":"/nil/ai/generate","args":{},"nonce":hex(&nonce),"prf":[hex(&Sha256::digest(tokens[0].as_bytes()))]}), + &signing, + ); + Ok(json!(format!("{invocation}/{proof}"))) +} diff --git a/crates/explorer-core/src/preview.rs b/crates/explorer-core/src/preview.rs new file mode 100644 index 0000000..94697c9 --- /dev/null +++ b/crates/explorer-core/src/preview.rs @@ -0,0 +1,169 @@ +use crate::{array, reports::rules, risk::float, text}; +use serde_json::{json, Value}; +use std::collections::{HashMap, HashSet}; +fn category(r: &Value) -> (&'static str, &'static str) { + let s = format!( + "{} {} {}", + text(r, "traitName"), + text(r, "studyTitle"), + text(r, "mappedGene") + ) + .to_lowercase(); + for c in array(&rules()["previewCategories"]) { + if array(&c["keywords"]) + .iter() + .any(|k| s.contains(k.as_str().unwrap_or(""))) + { + return (text(c, "id"), text(c, "label")); + } + } + ("other", "other traits") +} +pub fn classify(r: &Value) -> Value { + let (id, label) = category(r); + json!({"id":id,"label":label}) +} +fn interest(r: &Value) -> f64 { + let score = r["riskScore"].as_f64().unwrap_or(0.0); + let effect = if text(r, "effectType") == "beta" { + (score.abs() * 4.0).min(2.5) + } else if score <= 0.0 || score > 50.0 { + 0.0 + } else { + score.ln().abs().min(2.5) + }; + let mlog = float(&text(r, "pValueMlog").replace(',', "")).unwrap_or(0.0) / 10.0; + static RE: std::sync::OnceLock = std::sync::OnceLock::new(); + let sample = format!( + "{} {}", + text(r, "sampleSize"), + text(r, "replicationSampleSize") + ); + let largest = RE + .get_or_init(|| regex::Regex::new(r"\d[\d,]*").unwrap()) + .find_iter(&sample) + .filter_map(|m| m.as_str().replace(',', "").parse::().ok()) + .max() + .unwrap_or(0); + let evidence = mlog.min(1.5) + + if largest >= 100000 { + 1.0 + } else if largest >= 10000 { + 0.6 + } else { + 0.0 + } + + if !text(r, "replicationSampleSize").is_empty() { + 0.4 + } else { + 0.0 + }; + effect + + evidence + + match category(r).0 { + "other" => 0.0, + "appearance" => 0.25, + "cardiometabolic" | "immune" | "medication" => 1.0, + _ => 0.75, + } +} +fn normalized(r: &Value) -> String { + static PARENS: std::sync::OnceLock = std::sync::OnceLock::new(); + let name = text(r, "traitName").to_lowercase(); + let name = PARENS + .get_or_init(|| regex::Regex::new(r"\([^)]*\)").unwrap()) + .replace_all(&name, " "); + let name = name.replace(|c: char| !c.is_ascii_alphanumeric(), " "); + let stop = [ + "stage", + "type", + "disease", + "disorder", + "condition", + "measurement", + "self", + "reported", + "adjusted", + "male", + "female", + "men", + "women", + ]; + name.split_whitespace() + .filter(|w| w.len() > 2 && !stop.contains(w)) + .collect::>() + .join(" ") +} +fn priority(r: &Value) -> u8 { + match category(r).0 { + "cardiometabolic" => 0, + "medication" => 1, + "immune" => 2, + "sleep_energy" => 3, + "reproductive" => 4, + "brain_behavior" => 5, + "body_composition" => 6, + "appearance" => 7, + _ => 8, + } +} +pub fn select(v: &Value) -> Value { + let limit = v["limit"].as_u64().unwrap_or(12) as usize; + if limit == 0 { + return json!([]); + } + let mut sorted = array(&v["results"]).to_vec(); + sorted.sort_by(|a, b| interest(b).total_cmp(&interest(a))); + let mut selected = Vec::new(); + let mut seen = HashSet::new(); + let mut counts: HashMap<&str, usize> = HashMap::new(); + for r in sorted { + let name = normalized(&r); + if !name.is_empty() && seen.contains(&name) { + continue; + } + let cat = category(&r).0; + let cap = if cat == "other" { 2 } else { 3 }; + if counts.get(cat).copied().unwrap_or(0) >= cap { + continue; + } + if !name.is_empty() { + seen.insert(name); + } + *counts.entry(cat).or_default() += 1; + selected.push(r); + if selected.len() >= limit { + break; + } + } + selected.sort_by(|a, b| { + priority(a) + .cmp(&priority(b)) + .then_with(|| interest(b).total_cmp(&interest(a))) + }); + json!(selected) +} +pub fn insight(v: &Value) -> Value { + let rows = array(v); + let mut counts: Vec<(&str, usize)> = Vec::new(); + for r in rows { + let label = category(r).1; + if let Some((_, n)) = counts.iter_mut().find(|(l, _)| *l == label) { + *n += 1 + } else { + counts.push((label, 1)); + } + } + counts.sort_by(|a, b| b.1.cmp(&a.1)); + counts.truncate(3); + let themes = counts + .iter() + .map(|(label, count)| json!({"label":label,"count":count})) + .collect::>(); + let mut standout = rows + .iter() + .filter(|r| text(r, "riskLevel") != "neutral") + .collect::>(); + standout.sort_by(|a, b| interest(b).total_cmp(&interest(a))); + json!({"themes":themes,"standout":standout.first().copied().or_else(||rows.first()),"protectiveCount":rows.iter().filter(|r|text(r,"riskLevel")=="decreased").count(),"elevatedCount":rows.iter().filter(|r|text(r,"riskLevel")=="increased").count(),"headline":if counts.is_empty(){"Your first matches are ready to explore.".to_string()}else{format!("Your first matches point to {}.",counts.iter().map(|(l,_)|*l).collect::>().join(", "))}}) +} diff --git a/crates/explorer-core/src/quality.rs b/crates/explorer-core/src/quality.rs new file mode 100644 index 0000000..ed0c4c9 --- /dev/null +++ b/crates/explorer-core/src/quality.rs @@ -0,0 +1,220 @@ +use crate::{risk::float, text}; +use serde_json::{json, Value}; +pub fn sample_size(s: &str) -> Option { + static RE: std::sync::OnceLock = std::sync::OnceLock::new(); + let values = RE + .get_or_init(|| regex::Regex::new(r"\d[\d,]*").unwrap()) + .find_iter(s) + .filter_map(|m| m.as_str().replace(',', "").parse::().ok()) + .filter(|n| *n > 0.0) + .collect::>(); + let max = values.iter().copied().reduce(f64::max)?; + Some(if values.iter().all(|n| (n - max).abs() / max < 0.2) { + max + } else { + values.iter().sum() + }) +} +pub fn p_value(s: &str) -> Option { + let s = s.trim().to_lowercase().replace('×', "x"); + static SIMPLE: std::sync::OnceLock = std::sync::OnceLock::new(); + if SIMPLE + .get_or_init(|| regex::Regex::new(r"^\d+(\.\d+)?(e-?\d+)?$").unwrap()) + .is_match(&s) + { + return s.parse().ok(); + } + static SCI: std::sync::OnceLock = std::sync::OnceLock::new(); + if let Some(c) = SCI + .get_or_init(|| regex::Regex::new(r"([\d.]+)\s*x\s*10\s*\^\s*(-?\d+)").unwrap()) + .captures(&s) + { + return Some(c[1].parse::().ok()? * 10f64.powf(c[2].parse().ok()?)); + } + if let Some((_, tail)) = s.split_once('<') { + return p_value(tail); + } + None +} +pub fn flags(v: &Value) -> Value { + let mut flags = Vec::new(); + let n = v["sampleSize"].as_f64(); + let p = v["pValue"].as_f64(); + let log = v["logPValue"].as_f64(); + for (condition, message, severity) in [ + ( + n.is_some_and(|n| n < 500.0), + "Very small discovery cohort (<500 participants)", + "major", + ), + ( + p.is_some_and(|p| p > 5e-7), + "Association well above genome-wide significance (p > 5e-7)", + "major", + ), + ( + n.is_some_and(|n| (500.0..1000.0).contains(&n)), + "Small discovery cohort (500-1000 participants)", + "minor", + ), + ( + p.is_some_and(|p| p > 5e-8 && p <= 5e-7), + "Association slightly above genome-wide significance (5e-8 < p < 5e-7)", + "minor", + ), + ( + log.is_some_and(|p| p < 6.0), + "Moderate signal strength (−log10 p < 6)", + "minor", + ), + ] { + if condition { + flags.push(json!({"message":message,"severity":severity})); + } + } + json!(flags) +} +pub fn evidence(v: &Value) -> Value { + let normalized = text(v, "pValue").replace(char::is_whitespace, ""); + let normalized = regex::Regex::new("(?i)x10\\^") + .unwrap() + .replace(&normalized, "e"); + let p = float(&normalized) + .filter(|n| n.is_finite() && *n > 0.0) + .or_else(|| { + float(text(v, "pValueMlog")) + .filter(|n| n.is_finite() && *n > 0.0) + .map(|n| 10f64.powf(-n)) + }); + let n = regex::Regex::new(r"\d[\d,]*") + .unwrap() + .find_iter(text(v, "sampleSize")) + .filter_map(|m| m.as_str().replace(',', "").parse::().ok()) + .max(); + let significant = p.is_some_and(|p| p <= 5e-8); + let large = n.is_some_and(|n| n >= 10000); + let band = if significant && (!text(v, "replicationSampleSize").trim().is_empty() || large) { + "strong" + } else if significant || large { + "moderate" + } else { + "limited" + }; + let label = match band { + "strong" => "Stronger GWAS evidence", + "moderate" => "Moderate GWAS evidence", + _ => "Limited context available", + }; + let mut details = Vec::new(); + if let Some(p) = p { + details.push( + if p <= 5e-8 { + "Genome-wide significant p-value" + } else { + "Association p-value reported" + } + .to_string(), + ); + } + for (key, label) in [ + ("sampleSize", "Initial sample"), + ("replicationSampleSize", "Replication sample"), + ] { + if !text(v, key).is_empty() { + details.push(format!("{label}: {}", text(v, key))); + } + } + details.push( + if text(v, "effectType") == "beta" { + "Beta effect, not an odds ratio" + } else { + "Odds ratio is relative, not absolute risk" + } + .into(), + ); + details.push("Educational interpretation, not diagnosis".into()); + json!({"band":band,"label":label,"details":details}) +} +fn pow(mut a: u64, mut exp: u64, n: u64) -> u64 { + let mut r = 1; + while exp > 0 { + if exp % 2 == 1 { + r = ((r as u128 * a as u128) % n as u128) as u64; + } + a = ((a as u128 * a as u128) % n as u128) as u64; + exp /= 2; + } + r +} +pub fn prime(n: u64) -> bool { + if n < 2 { + return false; + } + for p in [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37] { + if n % p == 0 { + return n == p; + } + } + let mut d = n - 1; + let mut r = 0; + while d % 2 == 0 { + d /= 2; + r += 1; + } + 'w: for a in [2, 325, 9375, 28178, 450775, 9780504, 1795265022] { + let a = a % n; + if a == 0 { + continue; + } + let mut x = pow(a, d, n); + if x == 1 || x == n - 1 { + continue; + } + for _ in 1..r { + x = pow(x, 2, n); + if x == n - 1 { + continue 'w; + } + } + return false; + } + true +} +pub fn delicate(n: u64) -> bool { + if !prime(n) { + return false; + } + let mut digits = n.to_string().into_bytes(); + for i in 0..digits.len() { + let original = digits[i]; + for d in b'0'..=b'9' { + if d == original { + continue; + } + digits[i] = d; + if let Ok(candidate) = std::str::from_utf8(&digits).unwrap().parse() { + if prime(candidate) { + return false; + } + } + } + digits[i] = original; + } + true +} +pub fn promo(s: &str) -> Value { + let s = s.trim(); + let parsed = s.parse::(); + let (valid, message) = match parsed { + Ok(n) if n.to_string() == s && n >= 1 && n <= 999999999 => { + if delicate(n) { + (true, "🎉 Valid promo code! Free access granted.") + } else { + (false, "Not a valid promo code") + } + } + Ok(n) if n.to_string() == s => (false, "Code out of valid range"), + _ => (false, "Invalid code format"), + }; + json!({"valid":valid,"discount":if valid{0}else{1},"message":message}) +} diff --git a/crates/explorer-core/src/reports.rs b/crates/explorer-core/src/reports.rs new file mode 100644 index 0000000..7542f11 --- /dev/null +++ b/crates/explorer-core/src/reports.rs @@ -0,0 +1,627 @@ +use crate::{array, text}; +use serde_json::{json, Value}; +pub fn rules() -> &'static Value { + static RULES: std::sync::OnceLock = std::sync::OnceLock::new(); + RULES.get_or_init(|| serde_json::from_str(include_str!("../data/report-rules.json")).unwrap()) +} +pub fn profile_schema() -> Value { + serde_json::from_str(include_str!("../data/profile-fields.json")).unwrap() +} +pub fn parse_profile(v: &Value) -> Result { + let mut profile = json!({}); + for field in array(&profile_schema()) { + let key = text(field, "key"); + let value = text(v, key).trim(); + profile[key] = match text(field, "type") { + "list" => json!(value + .split(',') + .map(str::trim) + .filter(|s| !s.is_empty()) + .collect::>()), + "number" => { + if value.is_empty() { + Value::Null + } else { + let age = value.parse::().map_err(|_| "Enter a valid age")?; + if age > 130 { + return Err("Enter an age between 0 and 130".into()); + } + json!(age) + } + } + "select" => { + if !array(&field["options"]) + .iter() + .any(|o| text(o, "value") == value) + { + return Err(format!("Invalid {}", text(field, "label"))); + } + json!(value) + } + _ => json!(value), + }; + } + Ok(profile) +} +pub fn context(v: &Value) -> String { + let mut parts = Vec::new(); + let join = |key: &str| { + array(&v[key]) + .iter() + .filter_map(Value::as_str) + .collect::>() + .join(", ") + }; + for (key, label) in [ + ("ethnicities", "Ethnicities"), + ("countriesOfOrigin", "Countries of ancestral origin"), + ] { + let s = join(key); + if !s.is_empty() { + parts.push(format!("{label}: {s}")); + } + } + if !text(v, "genderAtBirth").is_empty() { + parts.push(format!( + "Gender assigned at birth: {}", + text(v, "genderAtBirth") + )); + } + if let Some(age) = v["age"].as_f64().filter(|n| *n != 0.0) { + parts.push(format!("Age: {age}")); + } + if !text(v, "smokingHistory").is_empty() { + parts.push(format!( + "Smoking history: {}", + match text(v, "smokingHistory") { + "still-smoking" => "Currently smoking", + "past-smoker" => "Former smoker", + _ => "Never smoked", + } + )); + } + let capitalize = |s: &str| { + s.chars() + .next() + .map(|c| c.to_uppercase().to_string() + &s[c.len_utf8()..]) + .unwrap_or_default() + }; + if !text(v, "alcoholUse").is_empty() { + parts.push(format!( + "Alcohol use: {}", + capitalize(text(v, "alcoholUse")) + )); + } + let medications = join("medications"); + if !medications.is_empty() { + parts.push(format!("Current medications/supplements: {medications}")); + } + if !text(v, "diet").is_empty() { + parts.push(format!( + "Dietary preferences: {}", + if text(v, "diet") == "regular" { + "Regular diet (no restrictions)".into() + } else { + capitalize(text(v, "diet")) + " diet" + } + )); + } + for (key, label) in [ + ("personalConditions", "Personal medical history"), + ("familyConditions", "Family medical history"), + ] { + let s = join(key); + if !s.is_empty() { + parts.push(format!("{label}: {s}")); + } + } + if parts.is_empty() { + String::new() + } else { + format!("\n\n{}", parts.join("\n")) + } +} +pub fn render(v: &Value) -> Result { + let name = text(v, "name"); + if !["generateMapPrompt", "generateReducePrompt"].contains(&name) { + return Err("Unknown prompt template".into()); + } + let mut template = text(rules(), name).to_string(); + let mut values = v["values"].as_object().cloned().unwrap_or_default(); + if values.get("groupSummaries").is_some() { + let summaries = array(&values["groupSummaries"]) + .iter() + .enumerate() + .map(|(i, s)| { + format!( + "--- BATCH {} ANALYSIS ---\n{}", + i + 1, + s.as_str().unwrap_or("") + ) + }) + .collect::>() + .join("\n\n"); + values.insert("summariesText".into(), json!(summaries)); + } + for (key, value) in values { + template = template.replace( + &format!("{{{key}}}"), + &value + .as_str() + .map(str::to_string) + .unwrap_or_else(|| value.to_string()), + ); + } + Ok(json!(template)) +} +pub fn extract(v: &Value) -> Value { + let content = v.as_str().unwrap_or(""); + let mut parts = content.splitn(2, "\nCHAT_QUESTIONS:\n"); + let report = parts.next().unwrap_or("").trim_end(); + let questions = parts + .next() + .map(|s| { + s.lines() + .filter_map(|l| l.strip_prefix("- ").map(str::trim)) + .filter(|s| !s.is_empty()) + .collect::>() + }) + .unwrap_or_default(); + json!({"report":report.trim(),"questions":questions}) +} +fn score(r: &Value) -> f64 { + r["riskScore"].as_f64().unwrap_or(0.0) +} +fn magnitude(r: &Value) -> f64 { + let s = score(r); + if text(r, "effectType") == "beta" { + s.abs() + } else if s > 0.0 { + s.ln().abs() + } else { + 0.0 + } +} +fn credible(r: &Value, low: f64, high: f64) -> bool { + text(r, "effectType") == "OR" && score(r) > low && score(r) < high +} +pub fn select(v: &Value) -> Value { + let kind = text(v, "kind").to_lowercase().replace(' ', ""); + let rows = array(&v["results"]); + let mut selected: Vec = Vec::new(); + let mut counts = json!({}); + if kind == "toptraits" { + let mut or = rows + .iter() + .filter(|r| credible(r, 0.1, 10.0)) + .cloned() + .collect::>(); + let mut beta = rows + .iter() + .filter(|r| text(r, "effectType") == "beta" && score(r).abs() < 50.0) + .cloned() + .collect::>(); + or.sort_by(|a, b| magnitude(b).total_cmp(&magnitude(a))); + beta.sort_by(|a, b| magnitude(b).total_cmp(&magnitude(a))); + selected.extend(or.iter().take(25).cloned()); + selected.extend(beta.iter().take(25).cloned()); + let remaining = 100 - selected.len(); + selected.extend(or.into_iter().skip(25).take(remaining)); + selected.extend(beta.into_iter().skip(25).take(remaining)); + selected.truncate(100); + } else if kind == "healthspan" { + let domains = array(&rules()["domains"]); + let mut assignments = std::collections::HashMap::new(); + for row in rows.iter().filter(|r| credible(r, 0.1, 10.0)) { + let trait_name = text(row, "traitName").to_lowercase(); + let mut best = 0; + let mut domain = ""; + for d in domains { + let n = array(&d["keywords"]) + .iter() + .filter(|k| trait_name.contains(k.as_str().unwrap_or(""))) + .count(); + if n > best { + best = n; + domain = text(d, "id"); + } + } + if !domain.is_empty() { + assignments.insert(row["studyId"].to_string(), domain); + } + } + for domain in domains { + let id = text(domain, "id"); + let mut matching = rows + .iter() + .filter(|r| { + credible(r, 0.1, 10.0) + && assignments.get(&r["studyId"].to_string()) == Some(&id) + }) + .cloned() + .collect::>(); + matching.sort_by(|a, b| magnitude(b).total_cmp(&magnitude(a))); + for (level, max, key) in [ + ("increased", 15, "elevated"), + ("decreased", 8, "protective"), + ] { + let part = matching + .iter() + .filter(|r| text(r, "riskLevel") == level) + .take(max) + .cloned() + .collect::>(); + counts[id][key] = json!(part.len()); + for mut r in part { + r["domain"] = json!(id); + selected.push(r); + } + } + } + } else if kind == "health" { + let stop="and or the of with in to a an for by at on is it its as my our their has have had past history former previous current recent disease disorder syndrome condition related associated chronic acute primary secondary other type stage generalized loss level levels soft mild moderate severe".split_whitespace().collect::>(); + for key in ["personalConditions", "familyConditions"] { + for condition in array(&v["customization"][key]) { + let label = condition.as_str().unwrap_or(""); + let normalized = label.to_lowercase().replace( + |c: char| !c.is_ascii_alphanumeric() && !c.is_whitespace(), + " ", + ); + let words = normalized + .split_whitespace() + .filter(|w| w.len() > 2 && !stop.contains(w)) + .collect::>(); + if words.is_empty() { + continue; + } + let mut matched = rows + .iter() + .filter(|r| credible(r, 0.05, 50.0)) + .map(|r| { + ( + r, + words + .iter() + .filter(|w| text(r, "traitName").to_lowercase().contains(**w)) + .count(), + ) + }) + .filter(|(_, n)| *n >= words.len().div_ceil(2)) + .collect::>(); + matched.sort_by(|(a, ac), (b, bc)| { + bc.cmp(ac) + .then_with(|| magnitude(b).total_cmp(&magnitude(a))) + }); + for (r, _) in matched.into_iter().take(12) { + if selected.iter().any(|x| x["studyId"] == r["studyId"]) { + continue; + } + let mut r = r.clone(); + r["matchedCondition"] = json!(format!( + "{}{}", + if key == "familyConditions" { + "family history: " + } else { + "" + }, + label + )); + selected.push(r); + } + } + } + for (level, max) in [ + ("increased", 30usize.saturating_sub(selected.len().min(30))), + ("decreased", 20), + ] { + let mut matching = rows + .iter() + .filter(|r| { + credible(r, 0.1, 10.0) + && text(r, "riskLevel") == level + && !selected.iter().any(|s| s["studyId"] == r["studyId"]) + }) + .cloned() + .collect::>(); + matching.sort_by(|a, b| magnitude(b).total_cmp(&magnitude(a))); + selected.extend(matching.into_iter().take(max)); + } + } else { + selected = rows.to_vec(); + } + json!({"selected":selected,"counts":counts}) +} +fn format_report_row(r: &Value, kind: &str) -> String { + let s = score(r); + let direction = match text(r, "riskLevel") { + "increased" => "↑", + "decreased" => "↓", + _ => "→", + }; + let caveat = if kind == "health" && text(r, "effectType") == "OR" { + if s >= 10.0 { + " ⚠ unusually large OR; likely rare subtype or specialized cohort" + } else if s >= 5.0 { + " ⚠ large OR; interpret with caution" + } else { + "" + } + } else { + "" + }; + let effect = if text(r, "effectType") == "OR" || kind == "healthspan" { + format!("OR {s:.2}x {direction}{caveat}") + } else { + format!("β={}{s:.3} {direction}", if s >= 0.0 { "+" } else { "" }) + }; + let mut row = format!("{} | {effect}", text(r, "traitName")); + for (key, label) in [ + ("mappedGene", "gene"), + ("matchedSnp", "snp"), + ("userGenotype", "genotype"), + ] { + if !text(r, key).is_empty() { + row.push_str(&format!(" | {label}: {}", text(r, key))); + if key == "userGenotype" && !text(r, "riskAllele").is_empty() { + row.push_str(&format!(" (risk allele: {})", text(r, "riskAllele"))); + } + } + } + if let Some(p) = crate::risk::float(text(r, "pValueMlog")) { + row.push_str(if p >= 10.0 { + " | p: very strong" + } else if p >= 7.3 { + " | p: strong" + } else if p >= 5.0 { + " | p: moderate" + } else { + " | p: suggestive" + }); + } + if kind == "health" && !text(r, "matchedCondition").is_empty() { + row.push_str(&format!(" [matched: {}]", text(r, "matchedCondition"))); + } + row +} +fn detailed_prompt(v: &Value, kind: &str) -> String { + let selected = if v["selected"].is_array() { + v["selected"].clone() + } else { + select(v)["selected"].clone() + }; + let rows = array(&selected); + let customization = &v["customization"]; + let history_present = !array(&customization["personalConditions"]).is_empty() + || !array(&customization["familyConditions"]).is_empty(); + let mut history = Vec::new(); + for key in ["personalConditions", "familyConditions"] { + for c in array(&customization[key]) { + let c = c.as_str().unwrap_or(""); + history.push(if kind == "healthspan" { + format!( + "- {}: {c}", + if key == "personalConditions" { + "Personal" + } else { + "Family" + } + ) + } else { + format!( + "{c}{}", + if key == "familyConditions" { + " (family history)" + } else { + "" + } + ) + }); + } + } + let mut sections = Vec::new(); + if kind == "healthspan" { + for domain in array(&rules()["domains"]) { + let matching = rows + .iter() + .filter(|r| text(r, "domain") == text(domain, "id")) + .collect::>(); + if matching.len() < 2 { + continue; + } + let mut parts = Vec::new(); + for (level, label) in [("increased", "Elevated"), ("decreased", "Protective")] { + let part = matching + .iter() + .filter(|r| text(r, "riskLevel") == level) + .map(|r| format_report_row(r, kind)) + .collect::>(); + if !part.is_empty() { + parts.push(format!("{label} ({}):\n{}", part.len(), part.join("\n"))); + } + } + sections.push(format!( + "## {}\n{}", + text(domain, "label").to_uppercase(), + parts.join("\n") + )); + } + } else { + let labels = if kind == "health" { + vec![ + ("matched", "RESULTS MATCHED TO HEALTH HISTORY"), + ("increased", "STRONGEST ADDITIONAL ELEVATED SIGNALS"), + ("decreased", "STRONGEST PROTECTIVE SIGNALS"), + ] + } else { + vec![ + ("increased", "ELEVATED SIGNALS"), + ("decreased", "PROTECTIVE SIGNALS"), + ] + }; + for (level, label) in labels { + let part = rows + .iter() + .filter(|r| { + if level == "matched" { + !text(r, "matchedCondition").is_empty() + } else { + (kind != "health" || text(r, "matchedCondition").is_empty()) + && text(r, "riskLevel") == level + } + }) + .map(|r| format_report_row(r, kind)) + .collect::>(); + if !part.is_empty() { + sections.push(format!("{label} ({}):\n{}", part.len(), part.join("\n"))); + } + } + } + let prefix = if kind == "toptraits" { + "topTraits" + } else { + kind + }; + let mut template = text(rules(), &format!("{prefix}Template")).to_string(); + let user_context = context(customization) + text(v, "context"); + let history = if history.is_empty() { + String::new() + } else { + format!("\nHEALTH HISTORY:\n{}\n", history.join("\n")) + }; + for (key, value) in [ + ("userCtx", user_context), + ("conditionSection", history.clone()), + ("healthHistorySection", history), + ("sections", sections.join("\n\n")), + ("domainSections", sections.join("\n\n")), + ( + "instruction", + text( + rules(), + if history_present { + "healthinstructionWithHistory" + } else { + "healthinstructionWithoutHistory" + }, + ) + .into(), + ), + ( + "healthHistoryNote", + text( + rules(), + if history_present { + "healthspanhealthHistoryNoteWithHistory" + } else { + "healthspanhealthHistoryNoteWithoutHistory" + }, + ) + .into(), + ), + ( + "historyLine", + text( + rules(), + if history_present { + "healthspanHistoryLine" + } else { + "healthspanNoHistoryLine" + }, + ) + .into(), + ), + ] { + template = template.replace(&format!("{{{key}}}"), &value); + } + template +} +pub fn statistics(rows: &[Value]) -> Value { + let count = |level: &str| { + rows.iter() + .filter(|r| text(r, "riskLevel") == level) + .count() + }; + let percent = |n: usize| { + if rows.is_empty() { + "0.0".into() + } else { + format!("{:.1}", n as f64 / rows.len() as f64 * 100.0) + } + }; + let top = |level: &str, descending: bool| { + let mut r = rows + .iter() + .filter(|r| text(r, "riskLevel") == level) + .collect::>(); + r.sort_by(|a, b| { + let order = a["riskScore"] + .as_f64() + .unwrap_or(1.0) + .total_cmp(&b["riskScore"].as_f64().unwrap_or(1.0)); + if descending { + order.reverse() + } else { + order + } + }); + r.into_iter() + .take(5) + .map(|r| json!({"traitName":r["traitName"],"riskScore":r["riskScore"]})) + .collect::>() + }; + json!({"totalResults":rows.len(),"increasedRisk":count("increased"),"increasedRiskPercent":percent(count("increased")),"decreasedRisk":count("decreased"),"decreasedRiskPercent":percent(count("decreased")),"neutral":count("neutral"),"neutralPercent":percent(count("neutral")),"topRisks":top("increased",true),"topProtective":top("decreased",false)}) +} +pub fn partition(v: &Value) -> Result { + let n = v["groups"].as_u64().unwrap_or(12) as usize; + if n == 0 || n > 10000 { + return Err("Group count must be between 1 and 10000".into()); + } + let mut rows = array(&v["results"]).to_vec(); + rows.sort_by(|a, b| { + (b["riskScore"].as_f64().unwrap_or(1.0) - 1.0) + .abs() + .total_cmp(&(a["riskScore"].as_f64().unwrap_or(1.0) - 1.0).abs()) + }); + let mut groups = vec![Vec::new(); n]; + for (i, r) in rows.into_iter().enumerate() { + groups[i % n].push(r) + } + Ok(json!(groups)) +} +pub fn format_results(rows: &[Value]) -> String { + rows.iter() + .map(|r| { + format!( + "{}|{}|{}|{}|{}|{}", + text(r, "traitName").chars().take(60).collect::(), + r["riskScore"], + text(r, "riskLevel").chars().next().unwrap_or('n'), + if text(r, "effectType").is_empty() { + "OR" + } else { + text(r, "effectType") + }, + text(r, "matchedSnp"), + if text(r, "mappedGene").is_empty() { + "Unknown" + } else { + text(r, "mappedGene") + } + ) + }) + .collect::>() + .join("\n") +} +pub fn prompt(v: &Value) -> Value { + let kind = text(v, "kind"); + let rows = array(&v["results"]); + let context = text(v, "context"); + let normalized = kind.to_lowercase().replace(' ', ""); + let system = rules()["systemPrompts"][&normalized].as_str().unwrap_or("You explain genetic association studies for educational use. Separate relative odds ratios from beta trait changes. Associations are not diagnoses or predictions. Discuss uncertainty, cohort size, ancestry, replication and environmental context. Never prescribe or recommend changing medication. Do not invent studies or citations."); + let user = if ["health", "healthspan", "toptraits"].contains(&normalized.as_str()) { + detailed_prompt(v, &normalized) + } else { + format!("Create a {kind} report using ONLY the supplied results. State limitations and distinguish risk-increasing, protective and neutral associations. {context}\nFormat: trait|score|direction|effect type|SNP|gene\n{}\nStatistics: {}",format_results(rows),statistics(rows)) + }; + json!({"messages":[{"role":"system","content":system},{"role":"user","content":user}]}) +} diff --git a/crates/explorer-core/src/results.rs b/crates/explorer-core/src/results.rs new file mode 100644 index 0000000..e395dae --- /dev/null +++ b/crates/explorer-core/src/results.rs @@ -0,0 +1,181 @@ +use crate::{array, text}; +use serde_json::{json, Value}; +const COLUMNS: [(&str, &str); 17] = [ + ("Study ID", "studyId"), + ("GWAS ID", "gwasId"), + ("Trait Name", "traitName"), + ("Study Title", "studyTitle"), + ("Your Genotype", "userGenotype"), + ("Risk Allele", "riskAllele"), + ("Effect Size", "effectSize"), + ("Effect Type", "effectType"), + ("Risk Score", "riskScore"), + ("Risk Level", "riskLevel"), + ("Matched SNP", "matchedSnp"), + ("Analysis Date", "analysisDate"), + ("P-Value", "pValue"), + ("P-Value (-log10)", "pValueMlog"), + ("Mapped Gene", "mappedGene"), + ("Sample Size", "sampleSize"), + ("Replication Sample Size", "replicationSampleSize"), +]; +pub fn export(rows: &[Value]) -> String { + let mut out = vec![COLUMNS.map(|c| c.0).join("\t")]; + for row in rows { + out.push( + COLUMNS + .iter() + .map(|(_, key)| { + let s = match row.get(key) { + Some(Value::String(s)) => s.clone(), + Some(Value::Number(n)) => n.to_string(), + _ => { + if *key == "effectType" { + "OR".into() + } else { + String::new() + } + } + }; + s.replace(['\t', '\r', '\n'], " ") + }) + .collect::>() + .join("\t"), + ); + } + out.join("\n") +} +pub fn import(input: &Value) -> Result { + let content = text(input, "content"); + let filename = text(input, "fileName"); + if filename.ends_with(".json") { + let session: Value = serde_json::from_str(content).map_err(|_| "Invalid file format")?; + if !session["results"].is_array() { + return Err("Invalid file format".into()); + } + return Ok(session); + } + let mut lines = content.lines().filter(|s| !s.trim().is_empty()); + let header = lines + .next() + .unwrap_or("") + .trim_start_matches('\u{feff}') + .split('\t') + .collect::>(); + let body = lines.collect::>(); + if body.is_empty() { + return Err("File is empty or has no data rows".into()); + } + for name in [ + "Study ID", + "GWAS ID", + "Trait Name", + "Study Title", + "Your Genotype", + "Risk Allele", + "Effect Size", + "Risk Score", + "Risk Level", + "Matched SNP", + "Analysis Date", + ] { + if !header.contains(&name) { + return Err("Invalid TSV headers - not a valid results file".into()); + } + } + let mut rows = Vec::new(); + for line in body { + let cols = line.split('\t').collect::>(); + if cols.len() < 11 { + continue; + } + let mut row = json!({}); + for (name, key) in COLUMNS { + let value = header + .iter() + .position(|h| *h == name) + .and_then(|i| cols.get(i)) + .copied() + .unwrap_or(""); + if key == "studyId" { + row[key] = json!(crate::risk::float(value).unwrap_or(0.0) as i64); + } else if key == "riskScore" { + row[key] = json!(crate::risk::float(value).unwrap_or(0.0)); + } else if key == "effectType" { + row[key] = json!(if value.is_empty() { "OR" } else { value }); + } else if key == "riskLevel" { + row[key] = json!(if value.is_empty() { "neutral" } else { value }); + } else if !value.is_empty() + || [ + "traitName", + "studyTitle", + "userGenotype", + "riskAllele", + "effectSize", + "matchedSnp", + "analysisDate", + ] + .contains(&key) + { + row[key] = json!(value); + } + } + rows.push(row); + } + Ok( + json!({"fileName":filename,"createdDate":text(input,"now"),"totalVariants":0,"results":rows}), + ) +} +pub fn saved(study: &Value, analysis: &Value, now: &str) -> Value { + let mut v = json!({"studyId":study["id"],"traitName":text(study,"disease_trait"),"studyTitle":text(study,"study"),"analysisDate":now}); + for key in [ + "userGenotype", + "riskAllele", + "effectSize", + "effectType", + "riskScore", + "riskLevel", + "matchedSnp", + ] { + v[key] = analysis[key].clone(); + } + for (source, target) in [ + ("study_accession", "gwasId"), + ("p_value", "pValue"), + ("pvalue_mlog", "pValueMlog"), + ("mapped_gene", "mappedGene"), + ("initial_sample_size", "sampleSize"), + ("replication_sample_size", "replicationSampleSize"), + ] { + if !text(study, source).is_empty() { + v[target] = study[source].clone(); + } + } + v +} +pub fn validate_snapshot(v: &Value) -> Result<&[Value], String> { + if v["version"] != 1 || !v["results"].is_array() { + return Err("Unsupported results snapshot".into()); + } + let rows = array(&v["results"]); + if !rows.iter().all(|r| { + r.is_object() + && r["studyId"].is_number() + && r["riskScore"].is_number() + && ["increased", "decreased", "neutral"].contains(&text(r, "riskLevel")) + && [ + "traitName", + "studyTitle", + "userGenotype", + "riskAllele", + "effectSize", + "matchedSnp", + "analysisDate", + ] + .iter() + .all(|k| r[k].is_string()) + }) { + return Err("Invalid saved results in snapshot".into()); + } + Ok(rows) +} diff --git a/crates/explorer-core/src/risk.rs b/crates/explorer-core/src/risk.rs new file mode 100644 index 0000000..4f4f8ad --- /dev/null +++ b/crates/explorer-core/src/risk.rs @@ -0,0 +1,115 @@ +use crate::text; +use serde_json::{json, Value}; + +pub fn float(s: &str) -> Option { + static RE: std::sync::OnceLock = std::sync::OnceLock::new(); + let re = RE.get_or_init(|| { + regex::Regex::new(r"^[\s]*([+-]?(?:Infinity|(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?))") + .unwrap() + }); + re.captures(s).and_then(|c| c[1].parse().ok()) +} +pub fn variants(s: &str) -> Vec { + s.split(|c: char| c == ';' || c == ',' || c.is_whitespace()) + .filter(|s| !s.is_empty()) + .map(str::to_string) + .collect() +} +pub fn valid(s: &str) -> bool { + !s.is_empty() && s != "00" && !s.chars().all(|c| c == '-') +} +pub fn effect(value: &str, ci: &str) -> Value { + if value.is_empty() { + return json!({"effectType":"OR","effectSize":"1"}); + } + let ci = ci.to_lowercase(); + let increase = ci.contains("increase"); + let decrease = ci.contains("decrease"); + let adjusted = if decrease && !increase { + float(value) + .map(|x| (-x.abs()).to_string()) + .unwrap_or("NaN".into()) + } else { + value.into() + }; + json!({"effectType":if increase||decrease{"beta"}else{"OR"},"effectSize":adjusted}) +} +pub fn score(genotype: &str, allele: &str, size: &str, kind: &str) -> Value { + let Some(effect) = float(size) else { + return json!({"score":1,"level":"neutral"}); + }; + if !valid(genotype) { + return json!({"score":1,"level":"neutral"}); + } + let risk = allele.rsplit('-').next().unwrap_or(""); + let n = genotype.chars().filter(|c| c.to_string() == risk).count() as i32; + let (score, level) = if kind == "beta" { + ( + effect * n as f64, + if n == 0 { + "neutral" + } else if effect > 0.0 { + "increased" + } else { + "decreased" + }, + ) + } else if n == 0 || effect == 1.0 { + (1.0, "neutral") + } else { + ( + effect.powi(n), + if effect > 1.0 { + "increased" + } else { + "decreased" + }, + ) + }; + json!({"score":score,"level":level}) +} +pub fn analyze(input: &Value) -> Value { + let (snps, allele, size) = ( + text(input, "snps"), + text(input, "riskAllele"), + text(input, "effectSize"), + ); + if snps.is_empty() || allele.is_empty() || size.is_empty() { + return json!({"hasMatch":false}); + } + let kind = if text(input, "effectType") == "beta" { + "beta" + } else { + "OR" + }; + let parts = allele.split('-').collect::>(); + let risk_snp = parts[0]; + let base = parts.get(1).copied().unwrap_or(""); + let mut matches = Vec::new(); + for snp in variants(snps) { + let Some(gt) = input + .get("genotypes") + .and_then(|g| g.get(&snp)) + .and_then(Value::as_str) + else { + continue; + }; + if !valid(gt) || (snp == risk_snp && !base.is_empty() && !gt.contains(base)) { + continue; + } + let result = score(gt, allele, size, kind); + matches + .push(json!({"snp":snp,"genotype":gt,"score":result["score"],"level":result["level"]})); + } + if matches.is_empty() { + return json!({"hasMatch":false}); + } + let first = &matches[0]; + let mut result = json!({"hasMatch":true,"userGenotype":first["genotype"],"riskAllele":allele,"effectSize":size,"effectType":kind,"riskScore":first["score"],"riskLevel":first["level"],"matchedSnp":first["snp"],"allMatches":matches}); + for key in ["gwasId", "confidenceInterval"] { + if !text(input, key).is_empty() { + result[key] = input[key].clone(); + } + } + result +} diff --git a/crates/explorer-core/src/session.rs b/crates/explorer-core/src/session.rs new file mode 100644 index 0000000..b7d4424 --- /dev/null +++ b/crates/explorer-core/src/session.rs @@ -0,0 +1,86 @@ +use crate::{array, genotype, results, risk, text}; +use serde_json::{json, Value}; +use std::{ + collections::HashMap, + sync::{Mutex, OnceLock}, +}; +struct Session { + genotypes: serde_json::Map, + results: Vec, + metadata: Value, +} +impl Default for Session { + fn default() -> Self { + Self { + genotypes: Default::default(), + results: Vec::new(), + metadata: json!({"count":0}), + } + } +} +static SESSIONS: OnceLock>> = OnceLock::new(); +static NEXT_ID: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(1); +pub fn dispatch(op: &str, input: Value) -> Result { + let mut sessions = SESSIONS + .get_or_init(|| Mutex::new(HashMap::new())) + .lock() + .map_err(|_| "Session unavailable")?; + if op == "session_create" { + if sessions.len() >= 16 { + return Err("Close unused sessions before creating more".into()); + } + let id = NEXT_ID.fetch_add(1, std::sync::atomic::Ordering::Relaxed); + sessions.insert(id, Session::default()); + return Ok(json!(id)); + } + let id = input["session"].as_u64().ok_or("Invalid session")?; + if op == "session_close" { + sessions.remove(&id); + return Ok(Value::Null); + } + let session = sessions.get_mut(&id).ok_or("Session is closed")?; + match op{ + "session_import"=>{ + let decoded=if input.get("bytes").is_some(){Some(crate::files::decode(&input)?)}else{None}; + let content=decoded.as_deref().unwrap_or_else(||text(&input,"content"));let mut parsed=genotype::parse_mode(content,text(&input,"format"),true); + if parsed["success"]!=true{return Err(text(&parsed,"error").into())} + let genotypes=parsed["genotypes"].take().as_object().cloned().ok_or("Invalid parsed genotypes")?; + session.genotypes=genotypes;session.results.clear(); + session.metadata=json!({"count":session.genotypes.len(),"detectedFormat":parsed["detectedFormat"],"fileHash":crate::crypto::file_hash(content),"fileName":text(&input,"fileName")});Ok(session.metadata.clone()) + }, + "session_metadata"=>Ok(session.metadata.clone()), + "session_analyze"=>{ + let mut analyzed=Vec::new(); + for study in array(&input["studies"]){ + let effect=risk::effect(text(study,"or_or_beta"),text(study,"ci_text")); + let mut matches=serde_json::Map::new();for id in risk::variants(text(study,"snps")){if let Some(gt)=session.genotypes.get(&id){matches.insert(id,gt.clone());}} + if input["strict"]==true{ + let parts=text(study,"strongest_snp_risk_allele").split('-').collect::>(); + let Some(base)=parts.get(1).filter(|s|!s.is_empty())else{continue}; + let Some(gt)=session.genotypes.get(parts[0]).and_then(Value::as_str)else{continue}; + if gt.len()!=2||!gt.chars().all(|c|"ACGT".contains(c))||!gt.contains(*base){continue} + matches.retain(|key,_|key==parts[0]); + } + let analysis=risk::analyze(&json!({"genotypes":matches,"snps":study["snps"],"riskAllele":study["strongest_snp_risk_allele"],"effectSize":effect["effectSize"],"effectType":effect["effectType"],"confidenceInterval":study["ci_text"],"gwasId":study["study_accession"]})); + if analysis["hasMatch"]!=true{continue}let saved=results::saved(study,&analysis,text(&input,"now")); + if let Some(old)=session.results.iter_mut().find(|r|r["studyId"]==saved["studyId"]){*old=saved.clone()}else{session.results.push(saved.clone())} + analyzed.push(saved); + }Ok(json!(analyzed)) + }, + "session_results"=>Ok(json!(session.results)), + "session_export"=>Ok(json!(results::export(&session.results))), + "session_import_results"=>{let value=results::import(&input)?;session.results=array(&value["results"]).to_vec();Ok(json!(session.results.len()))}, + "session_snapshot"=>Ok(json!({"version":1,"genotypes":session.genotypes,"results":session.results,"metadata":session.metadata}).to_string().into()), + "session_restore"=>{ + let snapshot:Value=serde_json::from_str(text(&input,"snapshot")).map_err(|_|"Invalid session backup")?; + if snapshot["version"]!=1{return Err("Unsupported session backup".into())} + if !snapshot["metadata"].is_object(){return Err("Invalid session metadata".into())} + let genotypes=snapshot["genotypes"].as_object().ok_or("Invalid genotypes")?; + if !genotypes.values().all(Value::is_string){return Err("Invalid genotypes".into())} + let results=results::validate_snapshot(&snapshot)?.to_vec(); + session.genotypes=genotypes.clone();session.results=results;session.metadata=snapshot["metadata"].clone();Ok(session.metadata.clone()) + }, + "session_clear"=>{*session=Session::default();Ok(Value::Null)}, + _=>Err("Unknown session operation".into()) + } +} diff --git a/crates/explorer-core/tests/contract.rs b/crates/explorer-core/tests/contract.rs new file mode 100644 index 0000000..40153ab --- /dev/null +++ b/crates/explorer-core/tests/contract.rs @@ -0,0 +1,92 @@ +use explorer_core::{core_call, dispatch}; +use serde_json::{json, Value}; + +#[test] +fn same_contract_as_web_and_mobile() { + let fixtures: Vec = + serde_json::from_str(include_str!("../../../tests/fixtures/core.json")).unwrap(); + for fixture in fixtures { + let actual = dispatch( + fixture["operation"].as_str().unwrap(), + fixture["input"].clone(), + ) + .unwrap(); + fn same(a: &Value, b: &Value) -> bool { + match (a, b) { + (Value::Number(a), Value::Number(b)) => a.as_f64() == b.as_f64(), + (Value::Array(a), Value::Array(b)) => { + a.len() == b.len() && a.iter().zip(b).all(|(a, b)| same(a, b)) + } + (Value::Object(a), Value::Object(b)) => { + a.len() == b.len() + && a.iter().all(|(k, a)| b.get(k).is_some_and(|b| same(a, b))) + } + _ => a == b, + } + } + assert!( + same(&actual, &fixture["expected"]), + "{}: actual={actual} expected={}", + fixture["name"], + fixture["expected"] + ); + } +} + +#[test] +fn malformed_requests_are_errors_not_panics() { + for request in ["invalid", "{}", r#"{"version":2,"operation":"version"}"#] { + let result: Value = serde_json::from_str(&core_call(request.into())).unwrap(); + assert_eq!(result["ok"], false); + } + assert_eq!(dispatch("version", Value::Null).unwrap()["protocol"], 1); +} + +#[test] +fn exact_snp_matching_and_beta_direction() { + let effect = dispatch("effect", json!({"value":"0.5","ci":"unit decrease"})).unwrap(); + assert_eq!(effect["effectSize"], "-0.5"); + let result=dispatch("analyze_study",json!({"genotypes":{"rs1":"AG"},"snps":"rs1","riskAllele":"rs1-A","effectSize":"-0.5","effectType":"beta"})).unwrap(); + assert_eq!(result["riskScore"], -0.5); + assert_eq!(result["riskLevel"], "decreased"); +} + +#[test] +fn native_binary_import_shares_text_and_gzip_semantics() { + use std::io::Write; + let session = dispatch("session_create", Value::Null) + .unwrap() + .as_u64() + .unwrap(); + let source = b"# 23andMe\r\nrs1 1 100 AG\r\n"; + let mut gzip = flate2::write::GzEncoder::new(Vec::new(), flate2::Compression::default()); + gzip.write_all(source).unwrap(); + let compressed = gzip.finish().unwrap(); + let mut last = Value::Null; + for bytes in [source.to_vec(), compressed] { + let result: Value = serde_json::from_str(&explorer_core::import_genotype( + session, + bytes, + "sample.txt".into(), + )) + .unwrap(); + assert_eq!(result["ok"], true); + assert_eq!(result["value"]["count"], 1); + if !last.is_null() { + assert_eq!(result["value"], last); + } + last = result["value"].clone(); + } + let invalid: Value = serde_json::from_str(&explorer_core::import_genotype( + session, + vec![255], + "invalid".into(), + )) + .unwrap(); + assert_eq!(invalid["ok"], false); + assert_eq!( + dispatch("session_metadata", json!({"session":session})).unwrap(), + last + ); + dispatch("session_close", json!({"session":session})).unwrap(); +} diff --git a/crates/explorer-core/uniffi.toml b/crates/explorer-core/uniffi.toml new file mode 100644 index 0000000..944f230 --- /dev/null +++ b/crates/explorer-core/uniffi.toml @@ -0,0 +1,7 @@ +[bindings.kotlin] +package_name = "com.monadicdna.explorer.core" +cdylib_name = "explorer_core" + +[bindings.swift] +module_name = "ExplorerCore" +ffi_module_name = "ExplorerCoreFFI" diff --git a/docs/clients.md b/docs/clients.md new file mode 100644 index 0000000..024155d --- /dev/null +++ b/docs/clients.md @@ -0,0 +1,95 @@ +# Web, Android, and iOS clients + +Explorer has three separate UIs backed by one Rust library: + +- `app/`: Next.js/React web UI and the existing HTTP backend. +- `apps/android/`: Kotlin, Jetpack Compose, Android 8+ (API 26). +- `apps/ios/`: SwiftUI, iOS 17+; Xcode project generated using XcodeGen. +- `crates/explorer-core/`: portable client domain logic. + +The mobile apps use native navigation, lists, forms, file pickers, and secure storage. They do not embed the web UI. Dynamic sign-in, hosted payment checkout, and connected-wallet transactions use the system browser. Deploy this branch's web backend before using mobile sign-in: `/mobile-auth` is the new encrypted callback bridge. + +## Shared core and platform boundaries + +Rust implements genotype format detection/parsing, bounded gzip decoding, variant matching, OR/beta scoring, quality/evidence interpretation, result serialization, preview selection, report selection and prompts, personalization parsing, provider configuration, promo verification, native access policy, encrypted portable vaults, and native nilAI authentication tokens. The report regression fixtures preserve the prior web report selection and prompt behavior. + +Normal operations on all hosts use the same versioned JSON protocol: `{version:1, operation, input}` returns `{ok:true,value}` or `{ok:false,error}`. `crates/explorer-core/src/lib.rs` lists operations. Recoverable input errors do not panic. Large native DNA imports use a UniFFI byte-buffer entry point to avoid base64/JSON copies; this calls the same bounded decoder, parser, hash function, and session implementation. Rust sessions own native genotype/result state; closing a session invalidates its handle. + +The web adapter (`lib/core.ts`) loads an import-free WASM module synchronously, including in workers and server rendering. Existing TypeScript functions retain their public signatures and delegate domain work to Rust. Kotlin and Swift call the same entry point through generated UniFFI bindings, using a native shared/static library respectively. Generated bindings, WASM source, native libraries, and Xcode projects are ignored and regenerated from the locked Rust workspace. + +HTTP transport, provider SDK integration, cancellation, UI state, browser IndexedDB, platform file access, and OS credential storage remain in their hosts. The backend's PostgreSQL/pgvector search, authentication verification, Stripe, and blockchain services remain server-side. The web app retains its IndexedDB catalog cache and WebCrypto nonextractable device key; mobile Run All fetches catalog pages from the same API and scores on device. Native catalog browsing requires a network connection. + +## Features + +Both native apps provide DNA import, exact/semantic search and trait filtering, study details and publication links, individual matching, Run All, saved-result filtering and TSV import/export, chat, Health/Healthspan/Top traits/Overview reports, optional personalization, provider settings, encrypted local and portable vaults, Dynamic sign-in, subscription refresh, promo entry, and hosted account/payment links. Chat and paid reports use subscription/promo access or consume an existing report pass through the backend. Buy passes and manage wallet payments on the website. + +The layout and platform interactions differ from the web app. Mobile report output supports export as Markdown; Android displays the report text directly. Web-specific advertising, attribution, social-account linking, and browser catalog caching are not duplicated as native screens. Payment/account pages remain available in the system browser. Both native report screens expose follow-up questions generated by the shared core. + +## Web development + +Install Node 24, rustup, and the PostgreSQL/pgvector backend described in the main README. Then: + +```sh +npm ci +npm run dev # builds WASM first +npm test # actual JS/WASM adapter regression tests +npm run core:test # native Rust contract tests +npm run lint +npx tsc --noEmit +npm run build +``` + +Keep `POSTGRES_DB` pointed at your environment's local database during development. No database credentials or server provider keys are embedded in mobile apps. CI production builds do not require database access during compilation. + +## Android + +Requirements: JDK 21, Android SDK platform 35/build tools 35.0.0, NDK 27.2.12479018, Node 24, rustup. Set `ANDROID_HOME` to the SDK location. The checked-in Gradle wrapper pins Gradle 8.11.1 and verifies its SHA-256 checksum. + +```sh +node scripts/build-native.mjs android arm64-v8a +cd apps/android +./gradlew assembleDebug testDebugUnitTest lintDebug +# Output: app/build/outputs/apk/debug/app-debug.apk +``` + +Host JVM tests load the real Rust library built by the script. For an x86 emulator, first build the matching Rust ABI and select it for packaging: + +```sh +node scripts/build-native.mjs android x86_64 +cd apps/android +./gradlew -PexplorerAbis=x86_64 assembleDebug connectedDebugAndroidTest +``` + +`-PexplorerAbis=arm64-v8a,x86_64` packages both, after generating both libraries. Release builds require your signing configuration. Debug builds permit `http://10.0.2.2:3000`, `localhost`, and `127.0.0.1` for the local backend; release catalog/account traffic requires HTTPS. User-configured Ollama traffic may use HTTP. Change the backend origin in Settings. An emulator's localhost is the emulator itself. + +## iOS + +Requires macOS, Xcode with iOS 17+ SDK/simulators, Node 24, rustup, and XcodeGen (`brew install xcodegen`). + +```sh +node scripts/build-native.mjs ios simulator +xcodebuild -project apps/ios/Explorer.xcodeproj -scheme Explorer \ + -destination 'platform=iOS Simulator,name=iPhone 16' \ + -derivedDataPath apps/ios/build test CODE_SIGNING_ALLOWED=NO +# Substitute an installed simulator from: xcrun simctl list devices available +``` + +For a device: `node scripts/build-native.mjs ios device`, open the generated project, set your development team and signing, and run. Rust libraries are linked by platform and architecture. Generate both simulator architectures if building a universal simulator destination. `CARGO_TARGET_DIR` overrides are supported by Android and WASM generation; iOS project linkage expects the default repository `target/` directory. + +The macOS CI job builds Rust, generates the project, selects an available iPhone simulator, and runs XCTest. iOS compilation and simulator tests cannot run in the Linux cloud workspace; CI/macOS validation is required before treating that app as verified. + +## Privacy, interoperability, and deployment + +DNA stays in memory until a user explicitly saves an encrypted vault. Mobile vaults use the shared PBKDF2-SHA256/AES-256-GCM format with 600,000 iterations and a user passphrase; keys and nonces come from the OS random source. Android settings and tokens use Android Keystore encryption; iOS uses device-only Keychain entries. Local vaults are excluded from platform backups. Lock closes the Rust session and clears visible results/chat/report state. Exported files are controlled by the user's selected file destination. + +`/portable-vault` on the web imports/exports the same encrypted snapshot as mobile. It imports into the active in-memory session; saving the existing browser vault is a separate action. Existing web encrypted genotype files remain compatible with the Rust decryptor. Portable vaults contain DNA and results, not provider credentials or account tokens. + +Sign-in uses a fresh X25519 key and random state, expires after five minutes, encrypts the JWT to the initiating device, and returns through `monadicexplorer://auth`. Register the web origin with your Dynamic environment. Native account requests carry the existing bearer token. Changing the backend should be done only to a server you trust with your account token. + +LLM use requires explicit result-sharing consent. Prompts go directly to the selected provider. HuggingFace needs a user-supplied key; Ollama uses the configured host; nilAI accepts a device key or the backend's one-use delegation flow. Native nilAI tokens are verified in regression tests using the existing Nillion SDK. Backend delegation retains its five-requests-per-minute limit; large Overview reports may require retrying or a user-provided nilAI key. Phone access to local Ollama requires reachable networking and appropriate platform transport configuration; production HTTPS endpoints are preferable. + +## Validation scope + +The Linux workspace validates Rust, the actual WASM adapter, TypeScript, ESLint, the Next.js production build, Android compilation, Android lint, and Kotlin/JNA calls into the real Rust library. CI also defines Android emulator navigation and macOS XCTest jobs. Device sign-in, real provider calls, purchases, signing, and store distribution require configured services and device testing; automated tests do not charge cards or submit personal DNA to providers. + +The full public 23andMe regression procedure, provenance, reference calculations, parser limitations, and platform validation results are recorded in [public sample validation](public-sample-validation.md). diff --git a/docs/public-sample-validation.md b/docs/public-sample-validation.md new file mode 100644 index 0000000..b5b32c5 --- /dev/null +++ b/docs/public-sample-validation.md @@ -0,0 +1,65 @@ +# Public 23andMe sample validation + +Test date: 2026-10-21. + +The input is a full, publicly volunteered 23andMe export from [gedankenstuecke/genotyping_23andme](https://github.com/gedankenstuecke/genotyping_23andme). Its README explicitly invites research use. The file's header identifies 23andMe, plus-strand calls, and genome assembly build 36. Tests match by rsID; they do not equate build-36 coordinates with modern GWAS coordinates. + +Pinned source: [raw export at revision b5160492a1fad18c7180d7ee88b54807b1712c8e](https://raw.githubusercontent.com/gedankenstuecke/genotyping_23andme/b5160492a1fad18c7180d7ee88b54807b1712c8e/genome_Bastian_Greshake_Full_20110503120911.txt). + +SHA-256: `65d5965670d8eb1072f187ab408c9044b0fdc88846d1b0132b0f5c4a3249a92e`. + +The 24,913,943-byte file has 966,983 genotype rows. Under the existing Explorer parser's rules: + +- 929,696 variants are imported, including 4,634 no-call rows. +- 10,249 internal identifiers are excluded. +- 27,038 single-allele calls are excluded. This is an inherited parser limitation, not a claim that those source rows are invalid. +- No-call rows never produce called A/C/G/T Run All matches. + +A separate Python implementation reads the original text and calculates expected allele dosage, OR exponentiation, signed beta effects, match identity, and direction. It does not call Rust or the JavaScript application. A frozen snapshot of the environment's 1,000 public GWAS study records is stored in `tests/fixtures/public-sample-studies.json`. This keeps all clients' inputs identical. It is a sample of the catalog, not the complete production GWAS catalog. + +Expected and verified web/native binding results: **142 matched study records**. Every SNP, genotype, effect type, direction, and numeric score agrees with the independent reference to an absolute tolerance of `1e-12`. There are 138 beta effects and four odds ratios, with 74 direction-decreasing and 68 direction-increasing associations; a decreasing beta is a change in the studied trait and should not automatically be interpreted as a health benefit. + +## Executed checks + +| Client/layer | Check | Result | +| --- | --- | --- | +| Web | Chromium: real file input, WASM parsing, visible import count, Run All through the existing IndexedDB catalog path, TSV download | Passed: 929,696 variants, 142 rows; all compared fields and scores match | +| Android native binding | Kotlin/JNA calling the actual Rust library with the full file, all 1,000 studies, and TSV round-trip | Passed: identical counts and all 142 results | +| Android app | Instrumented Compose test: app import method, Results navigation, Run all button, HTTP fixture transport, visible results, all scores, TSV round-trip | Passed on Android 8/API 26 emulator: 929,696 variants, all 142 corrected results agree; two UI tests passed | +| iOS Rust target | `cargo check --features ffi --target aarch64-apple-ios` | Passed | +| iOS app | Full-file Swift binding test and app file-import/published-result test | Prepared; not executed because this workspace is Linux and has no Xcode/iOS Simulator | + +The browser test seeds the real IndexedDB catalog with the frozen study snapshot. It blocks optional external account/analytics/provider traffic, while loading the SQL.js dependency through the configured proxy with TLS verification. It therefore does not verify login, purchases, or LLM reports. The Android UI test uses MockWebServer to deliver the same frozen snapshot through the application's real HTTP code. The local backend's corresponding 1,000-record Run All API response was also checked separately. + +## Issues caught during this run + +The public-file test caught and now guards against a web navigation bug: the portable-vault link performed a full reload, clearing the in-memory genome and results. It now uses Next.js client-side navigation. The browser test exports a portable vault after following that link, decrypts it independently with Node crypto, and checks the full variant and result counts. + +The Run All API also omitted `ci_text` and evidence metadata from its minimal payload. Interval text determines beta versus odds ratio and the sign of a beta. The API now retains these fields. The final fixture was refreshed from the database with complete metadata, and the expected scores were recalculated independently; the match count remains 142, but the effect types and scores change. `npm run test:public-sample:api` checks every metadata field against the real local backend. + +The Android emulator import initially timed out while passing the full file as base64 JSON. Native file imports now use a binary UniFFI buffer to reach the shared Rust decoder and parser, avoiding large string construction and escaping on the JVM. Swift uses the same binary entry point. Gzip/plain-text parity and malformed UTF-8 handling are covered by a native Rust contract test. + +## Reproduce + +```sh +npm ci +npm run test:public-sample:prepare +# Start the web app with its normal local development backend in another terminal. +npx playwright install chromium +npm run test:public-sample:web +# Or use an existing browser: +CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium npm run test:public-sample:web +``` + +The web origin defaults to `http://127.0.0.1:3000`; override `EXPLORER_TEST_URL` if needed. The test creates a fresh browser context and modifies only its own IndexedDB. In cloud environments whose Node runtime requires proxy opt-in, set `NODE_USE_ENV_PROXY=1`. + +```sh +node scripts/build-native.mjs android x86_64 +apps/android/gradlew -p apps/android -PexplorerAbis=x86_64 testDebugUnitTest connectedDebugAndroidTest +``` + +For Android hardware, build/package the corresponding ABI instead. The full-file tests are `PublicSampleCoreTest` and `PublicSampleTest`. + +On macOS, run preparation before generating the Xcode project, then follow [the iOS build instructions](clients.md#ios). The XCTest classes are `PublicSampleTests` and `CoreTests`. The native CI workflow prepares the public sample before running Android and iOS tests. + +Raw DNA and generated expected results are downloaded/generated under ignored `.test-data/`, Android test assets, and iOS test resources. The raw genome is not committed. Browser screenshots and the verified TSV export are generated in `.test-data/public-sample/`. This cloud run also captured the native Results screen as `.test-data/public-sample/android-results.png`. diff --git a/eslint.config.mjs b/eslint.config.mjs index 9c2c7d4..bcaf7a7 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -15,6 +15,11 @@ export default defineConfig([ }, globalIgnores([ '.next/**', + 'target/**', + 'lib/generated/**', + 'apps/**/build/**', + 'apps/android/.gradle/**', + 'apps/ios/Generated/**', 'out/**', 'build/**', 'coverage/**', diff --git a/lib/core.ts b/lib/core.ts new file mode 100644 index 0000000..14d996e --- /dev/null +++ b/lib/core.ts @@ -0,0 +1,31 @@ +import { coreWasmBase64 } from './generated/core-wasm'; + +type CoreExports = { + memory: WebAssembly.Memory; + explorer_alloc(length: number): number; + explorer_free(pointer: number, length: number): void; + explorer_call(pointer: number, length: number): number; + explorer_result_len(): number; +}; +let core: CoreExports | undefined; +const encoder = new TextEncoder(); +const decoder = new TextDecoder(); + +/** One synchronous, import-free WASM implementation for browsers, SSR and workers. */ +export function coreCall(operation: string, input: unknown = null): T { + if (!core) { + const bytes = Uint8Array.from(atob(coreWasmBase64), c => c.charCodeAt(0)); + core = new WebAssembly.Instance(new WebAssembly.Module(bytes)).exports as unknown as CoreExports; + } + const request = encoder.encode(JSON.stringify({ version: 1, operation, input })); + const pointer = core.explorer_alloc(request.length); + try { + new Uint8Array(core.memory.buffer, pointer, request.length).set(request); + const output = core.explorer_call(pointer, request.length); + const envelope = JSON.parse(decoder.decode(new Uint8Array(core.memory.buffer, output, core.explorer_result_len()))) as { ok: boolean; value: T; error?: string }; + if (!envelope.ok) throw new Error(envelope.error || 'Shared core operation failed'); + return envelope.value; + } finally { + core.explorer_free(pointer, request.length); + } +} diff --git a/lib/encryption-utils.ts b/lib/encryption-utils.ts index 27aa9bf..6bbed0b 100644 --- a/lib/encryption-utils.ts +++ b/lib/encryption-utils.ts @@ -1,3 +1,5 @@ +import { coreCall } from "./core"; + /** * Encryption utilities for sensitive user data * Uses Web Crypto API for secure client-side encryption @@ -34,50 +36,14 @@ export interface EncryptedData { salt: string; } +// Platform supplies CSPRNG entropy; Rust owns the portable encrypted file format. +const encodeBase64 = (bytes: Uint8Array) => btoa(Array.from(bytes, b => String.fromCharCode(b)).join("")); export async function encryptData(data: string, password: string): Promise { - const encoder = new TextEncoder(); - const salt = crypto.getRandomValues(new Uint8Array(16)); - const iv = crypto.getRandomValues(new Uint8Array(12)); - - const key = await deriveKey(password, salt); - - const encryptedBuffer = await crypto.subtle.encrypt( - { name: 'AES-GCM', iv: iv }, - key, - encoder.encode(data) - ); - - return { - ciphertext: btoa(String.fromCharCode(...new Uint8Array(encryptedBuffer))), - iv: btoa(String.fromCharCode(...iv)), - salt: btoa(String.fromCharCode(...salt)), - }; + const sealed = coreCall("seal", { plaintext: data, password, salt: encodeBase64(crypto.getRandomValues(new Uint8Array(16))), iv: encodeBase64(crypto.getRandomValues(new Uint8Array(12))), iterations: 100000 }); + return { ciphertext: sealed.ciphertext, iv: sealed.iv, salt: sealed.salt }; } - -export async function decryptData( - encryptedData: EncryptedData, - password: string -): Promise { - const decoder = new TextDecoder(); - - // Convert base64 back to Uint8Array - const ciphertext = Uint8Array.from(atob(encryptedData.ciphertext), c => c.charCodeAt(0)); - const iv = Uint8Array.from(atob(encryptedData.iv), c => c.charCodeAt(0)); - const salt = Uint8Array.from(atob(encryptedData.salt), c => c.charCodeAt(0)); - - const key = await deriveKey(password, salt); - - try { - const decryptedBuffer = await crypto.subtle.decrypt( - { name: 'AES-GCM', iv: iv }, - key, - ciphertext - ); - - return decoder.decode(decryptedBuffer); - } catch (error) { - throw new Error('Decryption failed - incorrect password'); - } +export async function decryptData(encryptedData: EncryptedData, password: string): Promise { + return coreCall("open", { ...encryptedData, password, iterations: 100000 }); } // Binary, key-based helpers for the on-device vault. Payloads stay as diff --git a/lib/evidence-labels.ts b/lib/evidence-labels.ts index 0f51691..d04a464 100644 --- a/lib/evidence-labels.ts +++ b/lib/evidence-labels.ts @@ -1,76 +1,6 @@ import type { SavedResult } from "./results-manager"; - -function parsePValue(result: Pick): number | null { - if (result.pValue) { - const normalized = result.pValue.replace(/\s/g, "").replace(/x10\^/i, "e"); - const value = Number.parseFloat(normalized); - if (Number.isFinite(value) && value > 0) return value; - } - - if (result.pValueMlog) { - const mlog = Number.parseFloat(result.pValueMlog); - if (Number.isFinite(mlog) && mlog > 0) return Math.pow(10, -mlog); - } - - return null; -} - -function parseLargestNumber(value?: string): number | null { - if (!value) return null; - const matches = value.match(/\d[\d,]*/g); - if (!matches?.length) return null; - const values = matches - .map((match) => Number.parseInt(match.replace(/,/g, ""), 10)) - .filter((number) => Number.isFinite(number)); - if (!values.length) return null; - return Math.max(...values); -} - -export function getEvidenceBand(result: SavedResult): "strong" | "moderate" | "limited" { - const pValue = parsePValue(result); - const sampleSize = parseLargestNumber(result.sampleSize); - const hasReplication = !!result.replicationSampleSize?.trim(); - - if ((pValue !== null && pValue <= 5e-8) && (hasReplication || (sampleSize !== null && sampleSize >= 10000))) { - return "strong"; - } - - if ((pValue !== null && pValue <= 5e-8) || (sampleSize !== null && sampleSize >= 10000)) { - return "moderate"; - } - - return "limited"; -} - -export function getEvidenceLabel(result: SavedResult): string { - const band = getEvidenceBand(result); - if (band === "strong") return "Stronger GWAS evidence"; - if (band === "moderate") return "Moderate GWAS evidence"; - return "Limited context available"; -} - -export function getEvidenceDetails(result: SavedResult): string[] { - const details: string[] = []; - const pValue = parsePValue(result); - - if (pValue !== null) { - details.push(pValue <= 5e-8 ? "Genome-wide significant p-value" : "Association p-value reported"); - } - - if (result.sampleSize) { - details.push(`Initial sample: ${result.sampleSize}`); - } - - if (result.replicationSampleSize) { - details.push(`Replication sample: ${result.replicationSampleSize}`); - } - - if (result.effectType === "beta") { - details.push("Beta effect, not an odds ratio"); - } else { - details.push("Odds ratio is relative, not absolute risk"); - } - - details.push("Educational interpretation, not diagnosis"); - return details; -} +import { coreCall } from "./core"; +type Evidence = { band: "strong" | "moderate" | "limited"; label: string; details: string[] }; +export function getEvidenceBand(result: SavedResult): Evidence["band"] { return coreCall("evidence", result).band; } +export function getEvidenceLabel(result: SavedResult): string { return coreCall("evidence", result).label; } +export function getEvidenceDetails(result: SavedResult): string[] { return coreCall("evidence", result).details; } diff --git a/lib/file-hash.ts b/lib/file-hash.ts index 98c9c2b..a3ea2a1 100644 --- a/lib/file-hash.ts +++ b/lib/file-hash.ts @@ -1,5 +1,3 @@ -import CryptoJS from 'crypto-js'; +import { coreCall } from "./core"; -export function calculateFileHash(fileContent: string): string { - return CryptoJS.SHA256(fileContent).toString(); -} \ No newline at end of file +export function calculateFileHash(fileContent: string): string { return coreCall("file_hash", fileContent); } diff --git a/lib/genotype-parser.ts b/lib/genotype-parser.ts index a38b6c5..73216e3 100644 --- a/lib/genotype-parser.ts +++ b/lib/genotype-parser.ts @@ -1,3 +1,5 @@ +import { coreCall } from "./core"; + export type GenotypeData = { rsid: string; chromosome: string; @@ -14,493 +16,12 @@ export type ParseResult = { detectedFormat?: 'monadic' | '23andme' | 'ancestrydna' | 'myheritage' | 'ftdna' | 'livingdna' | 'mapmygenome'; }; -// Chromosome 26 = mitochondrial in AncestryDNA exports. -const VALID_CHROMOSOMES = new Set([ - '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', - 'X', 'Y', 'MT', 'M', '26', -]); - -const VALID_BASES = new Set(['A', 'T', 'G', 'C', 'I', 'D', '0', '-']); - -function splitLines(content: string): string[] { - return content.split(/\r?\n/); -} - -function stripQuotes(value: string): string { - // Remove all quote characters; DNA field values never contain literal quotes. - return value.trim().replace(/"/g, ''); -} - -function preprocessContent(content: string): string { - return content - .replace(/^\uFEFF/, '') - .replace(/\u0000/g, '') - .replace(/\r\n?/g, '\n'); -} - -function inferProvider(content: string): ParseResult['detectedFormat'] { - const preview = content.slice(0, 4000).toLowerCase(); - - if (preview.includes('living dna')) return 'livingdna'; - if (preview.includes('mapmygenome')) return 'mapmygenome'; - if (preview.includes('myheritage')) return 'myheritage'; - if (preview.includes('familytreedna') || preview.includes('family tree dna') || preview.includes('famfinder')) return 'ftdna'; - if (preview.includes('ancestrydna') || preview.includes('ancestry.com')) return 'ancestrydna'; - if (preview.includes('23andme')) return '23andme'; - if (preview.includes('monadic dna')) return 'monadic'; - - return undefined; -} - -export function parse23andMeFile(content: string): ParseResult { - try { - const normalizedContent = preprocessContent(content); - const lines = splitLines(normalizedContent); - const genotypeData: GenotypeData[] = []; - let totalVariants = 0; - let validVariants = 0; - - for (const line of lines) { - const trimmedLine = line.trim(); - if (!trimmedLine || trimmedLine.startsWith('#')) continue; - - totalVariants++; - const parts = trimmedLine.split(/\s+/); - - if (parts.length < 4) continue; - - const [rsid, chromosome, positionStr] = parts; - let genotype = parts[3]; - - // Some providers (e.g. LivingDNA alt format) output allele1 allele2 as separate columns. - // Combine single-char alleles into a 2-char genotype. - if (parts.length >= 5 && genotype.length === 1 && parts[4].length === 1) { - genotype = genotype + parts[4]; - } - - if (!rsid.startsWith('rs')) continue; - - if (!VALID_CHROMOSOMES.has(chromosome)) continue; - - const position = parseInt(positionStr, 10); - if (!Number.isInteger(position) || position <= 0) continue; - - // Normalize no-calls - if (genotype === '--' || genotype === '-') { - genotypeData.push({ rsid, chromosome, position, genotype: '--' }); - validVariants++; - continue; - } - - if (genotype.length !== 2) continue; - const validSnpBases = new Set(['A', 'T', 'G', 'C', 'I', 'D', '-']); - if (!validSnpBases.has(genotype[0]) || !validSnpBases.has(genotype[1])) continue; - - genotypeData.push({ rsid, chromosome, position, genotype }); - validVariants++; - } - - if (validVariants === 0) { - return { - success: false, - error: 'No valid genotype data found in file. Please ensure the file is in 23andMe format.', - }; - } - - return { - success: true, - data: genotypeData, - totalVariants, - validVariants, - detectedFormat: inferProvider(normalizedContent) || '23andme', - }; - } catch (error) { - return { success: false, error: `Failed to parse file: ${error instanceof Error ? error.message : 'Unknown error'}` }; - } -} - -export function parseMonadicDNAFile(content: string): ParseResult { - try { - const normalizedContent = preprocessContent(content); - const lines = splitLines(normalizedContent); - const genotypeData: GenotypeData[] = []; - let totalVariants = 0; - let validVariants = 0; - let headerFound = false; - let delimiter = ','; - - for (const line of lines) { - const trimmedLine = line.trim(); - if (!trimmedLine || trimmedLine.startsWith('#')) continue; - - if (!headerFound) { - const upper = trimmedLine.toUpperCase().replace(/"/g, ''); - const normalized = upper.replace(/\s+/g, '\t'); - const hasExplicitDelimiter = upper.includes(',') || upper.includes('\t'); - // Accept RSID,CHROMOSOME,POSITION,RESULT or RSID,CHROMOSOME,POSITION,GENOTYPE - // For tab/space headers, require at least one real delimiter so purely - // space-separated files fall through to the 23andMe whitespace parser instead. - if ( - upper.startsWith('RSID,CHROMOSOME,POSITION,RESULT') || - upper.startsWith('RSID,CHROMOSOME,POSITION,GENOTYPE') || - (hasExplicitDelimiter && normalized.startsWith('RSID\tCHROMOSOME\tPOSITION\tGENOTYPE')) || - (hasExplicitDelimiter && normalized.startsWith('RSID\tCHROMOSOME\tPOSITION\tRESULT')) - ) { - headerFound = true; - delimiter = trimmedLine.includes('\t') ? '\t' : ','; - continue; - } - continue; - } - - totalVariants++; - const parts = trimmedLine.split(delimiter).map(stripQuotes); - - if (parts.length < 4) continue; - - const [rsid, chromosome, positionStr, genotype] = parts; - - if (!rsid.startsWith('rs')) continue; - - const position = parseInt(positionStr, 10); - if (!Number.isInteger(position) || position < 0) continue; - - if (genotype.length !== 2) continue; - - const validBases = new Set(['A', 'T', 'G', 'C', '-']); - if (!validBases.has(genotype[0]) || !validBases.has(genotype[1])) continue; - - genotypeData.push({ - rsid, - chromosome: chromosome === '0' ? '0' : chromosome, - position, - genotype, - }); - - validVariants++; - } - - if (!headerFound) { - return { success: false, error: 'No valid Monadic DNA header found. Expected: RSID,CHROMOSOME,POSITION,RESULT' }; - } - - if (validVariants === 0) { - return { success: false, error: 'No valid genotype data found in file. Please ensure the file is in Monadic DNA format.' }; - } - - return { - success: true, - data: genotypeData, - totalVariants, - validVariants, - detectedFormat: inferProvider(normalizedContent) || 'monadic', - }; - } catch (error) { - return { success: false, error: `Failed to parse file: ${error instanceof Error ? error.message : 'Unknown error'}` }; - } -} - -export function parseAncestryDNAFile(content: string): ParseResult { - try { - const normalizedContent = preprocessContent(content); - const lines = splitLines(normalizedContent); - const genotypeData: GenotypeData[] = []; - let totalVariants = 0; - let validVariants = 0; - let headerFound = false; - let allele1Idx = 3; - let allele2Idx = 4; - let delimiter = '\t'; - - const configureFromHeader = (headerLine: string) => { - delimiter = headerLine.includes('\t') ? '\t' : ','; - const cols = headerLine.split(delimiter).map(c => stripQuotes(c).toLowerCase()); - allele1Idx = cols.findIndex(c => /allele.?1|allele$/.test(c)); - allele2Idx = cols.findIndex(c => /allele.?2/.test(c)); - if (allele1Idx === -1) allele1Idx = 3; - if (allele2Idx === -1) allele2Idx = 4; - }; - - for (const line of lines) { - const trimmedLine = line.trim(); - if (!trimmedLine) continue; - - if (!headerFound) { - if (trimmedLine.startsWith('#')) { - // FTDNA famfinder puts the column header inside a comment line. - // Only treat it as a header if it contains "allele" (to avoid matching 23andMe comment headers). - const commentContent = trimmedLine.slice(1).trim(); - const lower = commentContent.toLowerCase(); - if ( - (lower.includes('rsid') || lower.includes('name')) && - lower.includes('chromosome') && - lower.includes('position') && - lower.includes('allele') - ) { - headerFound = true; - configureFromHeader(commentContent); - } - continue; - } - - const lower = trimmedLine.toLowerCase(); - if (lower.includes('rsid') && lower.includes('chromosome') && lower.includes('position')) { - headerFound = true; - configureFromHeader(trimmedLine); - continue; - } - continue; - } - - totalVariants++; - // Split and filter out empty fields caused by inconsistent multi-separator usage. - const rawParts = trimmedLine.split(delimiter).map(p => stripQuotes(p)); - const parts = rawParts.filter(p => p !== ''); - - if (parts.length <= Math.max(allele1Idx, 2)) continue; - - const rsid = parts[0]; - const chromosome = parts[1]; - const positionStr = parts[2]; - const allele1Raw = parts[allele1Idx] ?? ''; - const allele2Raw = allele2Idx < parts.length ? (parts[allele2Idx] ?? '') : ''; - - // If no allele2 but allele1 is 2 chars, treat it as a combined genotype (generic 4-col format). - if (!allele2Raw && allele1Raw.length === 2) { - const a1 = allele1Raw[0]; - const a2 = allele1Raw[1]; - if (!rsid.startsWith('rs') && !/^\d+$/.test(rsid)) continue; - if (!VALID_CHROMOSOMES.has(chromosome)) continue; - const position = parseInt(positionStr, 10); - if (!Number.isInteger(position) || position <= 0) continue; - const validBases = new Set(['A', 'T', 'G', 'C', 'I', 'D', '-']); - if (!validBases.has(a1) || !validBases.has(a2)) continue; - genotypeData.push({ rsid, chromosome: chromosome === 'M' ? 'MT' : chromosome, position, genotype: allele1Raw }); - validVariants++; - continue; - } - - if (!rsid.startsWith('rs') && !/^\d+$/.test(rsid)) continue; - if (!VALID_CHROMOSOMES.has(chromosome)) continue; - - const position = parseInt(positionStr, 10); - if (!Number.isInteger(position) || position <= 0) continue; - - const a1 = allele1Raw || '0'; - const a2 = allele2Raw || '0'; - - if (!VALID_BASES.has(a1) || !VALID_BASES.has(a2)) continue; - - const genotype = (a1 === '0' || a2 === '0') ? '--' : a1 + a2; - - genotypeData.push({ - rsid, - chromosome: chromosome === 'M' ? 'MT' : chromosome === '26' ? 'MT' : chromosome, - position, - genotype, - }); - - validVariants++; - } - - if (!headerFound) { - return { - success: false, - error: 'No valid AncestryDNA header found. Expected header with rsid, chromosome, position columns.', - }; - } - - if (validVariants === 0) { - return { success: false, error: 'No valid genotype data found in file. Please ensure the file is in AncestryDNA format.' }; - } - - return { - success: true, - data: genotypeData, - totalVariants, - validVariants, - detectedFormat: inferProvider(normalizedContent) || 'ancestrydna', - }; - } catch (error) { - return { success: false, error: `Failed to parse file: ${error instanceof Error ? error.message : 'Unknown error'}` }; - } -} - -export function parseMapmygenomeFile(content: string): ParseResult { - try { - const normalizedContent = preprocessContent(content); - const lines = splitLines(normalizedContent); - const genotypeData: GenotypeData[] = []; - let totalVariants = 0; - let validVariants = 0; - let headerFound = false; - let rsidIdx = 0; - let chromosomeIdx = -1; - let positionIdx = -1; - let allele1Idx = -1; - let allele2Idx = -1; - - for (const line of lines) { - const trimmedLine = line.trim(); - if (!trimmedLine) continue; - - if (!headerFound) { - const cols = trimmedLine.split('\t').map(c => stripQuotes(c)); - const lower = cols.map(c => c.toLowerCase()); - const hasPlusAlleles = lower.includes('allele1...plus') && lower.includes('allele2...plus'); - const hasPosition = lower.includes('position'); - const hasChromosome = lower.includes('chr') || lower.includes('chromosome'); - const hasProbeId = lower.includes('rsid') || lower.includes('snp name') || lower.includes('snp.name'); - - if (hasPlusAlleles && hasPosition && hasChromosome && hasProbeId) { - headerFound = true; - rsidIdx = lower.findIndex(c => c === 'rsid' || c === 'snp name' || c === 'snp.name'); - chromosomeIdx = lower.findIndex(c => c === 'chr' || c === 'chromosome'); - positionIdx = lower.findIndex(c => c === 'position'); - allele1Idx = lower.indexOf('allele1...plus'); - allele2Idx = lower.indexOf('allele2...plus'); - } - continue; - } - - totalVariants++; - const parts = trimmedLine.split('\t').map(stripQuotes); - if (parts.length <= Math.max(rsidIdx, chromosomeIdx, positionIdx, allele1Idx, allele2Idx)) continue; - - const rsid = parts[rsidIdx]; - const chromosome = parts[chromosomeIdx]; - const positionStr = parts[positionIdx]; - const allele1 = parts[allele1Idx] || '0'; - const allele2 = parts[allele2Idx] || '0'; - - if (!rsid.startsWith('rs')) continue; - if (!VALID_CHROMOSOMES.has(chromosome)) continue; - - const position = parseInt(positionStr, 10); - if (!Number.isInteger(position) || position <= 0) continue; - - if ((allele1 === '--' && allele2 === '--') || (allele1 === '-' && allele2 === '-')) { - genotypeData.push({ rsid, chromosome, position, genotype: '--' }); - validVariants++; - continue; - } - - if (!VALID_BASES.has(allele1) || !VALID_BASES.has(allele2)) continue; - const genotype = (allele1 === '0' || allele2 === '0') ? '--' : allele1 + allele2; - - genotypeData.push({ rsid, chromosome, position, genotype }); - validVariants++; - } - - if (!headerFound) { - return { - success: false, - error: 'No valid Mapmygenome header found. Expected Illumina-style SNP table with plus-strand allele columns.', - }; - } - - if (validVariants === 0) { - return { success: false, error: 'No valid genotype data found in file. Please ensure the file is in Mapmygenome format.' }; - } - - return { - success: true, - data: genotypeData, - totalVariants, - validVariants, - detectedFormat: 'mapmygenome', - }; - } catch (error) { - return { success: false, error: `Failed to parse file: ${error instanceof Error ? error.message : 'Unknown error'}` }; - } -} - -export function detectAndParseGenotypeFile(content: string): ParseResult { - const normalizedContent = preprocessContent(content); - // Scan first 50 lines — some files have long comment/metadata sections before the header. - const lines = splitLines(normalizedContent).slice(0, 50); - - const hasMapmygenomeHeader = lines.some(line => { - const cols = line.trim().split('\t').map(c => stripQuotes(c).toLowerCase()); - return ( - (cols.includes('rsid') || cols.includes('snp name') || cols.includes('snp.name')) && - (cols.includes('chr') || cols.includes('chromosome')) && - cols.includes('position') && - cols.includes('allele1...plus') && - cols.includes('allele2...plus') - ); - }); - if (hasMapmygenomeHeader) { - return parseMapmygenomeFile(normalizedContent); - } - - // Monadic DNA: CSV/TSV with specific header (also matches MyHeritage, FTDNA, generic 4-col formats). - // Require an explicit tab or comma so purely space-delimited files fall through to the - // 23andMe whitespace parser rather than being misrouted here with a comma delimiter. - const hasMonadicHeader = lines.some(line => { - const upper = line.trim().toUpperCase().replace(/"/g, ''); - const normalized = upper.replace(/\s+/g, '\t'); - const hasExplicitDelimiter = upper.includes(',') || upper.includes('\t'); - return ( - upper.startsWith('RSID,CHROMOSOME,POSITION,RESULT') || - upper.startsWith('RSID,CHROMOSOME,POSITION,GENOTYPE') || - (hasExplicitDelimiter && normalized.startsWith('RSID\tCHROMOSOME\tPOSITION\tGENOTYPE')) || - (hasExplicitDelimiter && normalized.startsWith('RSID\tCHROMOSOME\tPOSITION\tRESULT')) - ); - }); - if (hasMonadicHeader) { - return parseMonadicDNAFile(normalizedContent); - } - - // AncestryDNA: non-comment header line with rsid + chromosome + position + allele columns. - // Skip lines starting with # to avoid matching 23andMe's comment-based column header. - const hasAncestryHeader = lines.some(line => { - const trimmed = line.trim(); - if (trimmed.startsWith('#')) return false; - const lower = trimmed.toLowerCase(); - return lower.includes('rsid') && - lower.includes('chromosome') && - lower.includes('position'); - }); - if (hasAncestryHeader) { - return parseAncestryDNAFile(normalizedContent); - } - - // 23andMe and compatible formats: comment lines starting with #. - // But check if the data rows are AncestryDNA-style (5 columns with separate alleles) — - // FTDNA famfinder puts its column header in a comment line. - const has23andMeComments = lines.some(line => line.trim().startsWith('#')); - if (has23andMeComments) { - // If any comment line looks like an AncestryDNA header (has "allele"), try AncestryDNA first. - const commentHasAlleleHeader = lines.some(line => { - const trimmed = line.trim(); - if (!trimmed.startsWith('#')) return false; - const lower = trimmed.slice(1).toLowerCase(); - return (lower.includes('rsid') || lower.includes('name')) && lower.includes('chromosome') && lower.includes('allele'); - }); - if (commentHasAlleleHeader) { - const ancestryResult = parseAncestryDNAFile(normalizedContent); - if (ancestryResult.success) return ancestryResult; - } - return parse23andMeFile(normalizedContent); - } - - // Blind fallback. - const result23andMe = parse23andMeFile(normalizedContent); - if (result23andMe.success) return result23andMe; - - const resultAncestry = parseAncestryDNAFile(normalizedContent); - if (resultAncestry.success) return resultAncestry; - - const resultMonadic = parseMonadicDNAFile(normalizedContent); - if (resultMonadic.success) return resultMonadic; - - return { - success: false, - error: 'Unable to detect file format. Supported formats include 23andMe, AncestryDNA, MyHeritage, FTDNA, LivingDNA, and compatible raw DNA exports.', - }; -} +// Parsing is implemented once in explorer-core; File is a browser adapter only. +export function parse23andMeFile(content: string): ParseResult { return coreCall("parse_genotype", { content, format: "23andme" }); } +export function parseMonadicDNAFile(content: string): ParseResult { return coreCall("parse_genotype", { content, format: "monadic" }); } +export function parseAncestryDNAFile(content: string): ParseResult { return coreCall("parse_genotype", { content, format: "ancestrydna" }); } +export function parseMapmygenomeFile(content: string): ParseResult { return coreCall("parse_genotype", { content, format: "mapmygenome" }); } +export function detectAndParseGenotypeFile(content: string): ParseResult { return coreCall("parse_genotype", { content }); } export function validateFileSize(file: File, maxSizeMB: number = 50): boolean { return file.size <= maxSizeMB * 1024 * 1024; diff --git a/lib/health-report-service.ts b/lib/health-report-service.ts index b90003d..8a26442 100644 --- a/lib/health-report-service.ts +++ b/lib/health-report-service.ts @@ -8,7 +8,7 @@ */ import type { SavedResult } from './results-manager'; -import { buildUserContextString } from './overview-report-analyzer'; +import { coreCall } from "./core"; import { callLLM } from './llm-client'; export type HealthReportProgress = { @@ -27,232 +27,9 @@ export type HealthReportResult = { questions: string[]; }; -// ── Keyword helpers ── - -const STOP_WORDS = new Set([ - 'and', 'or', 'the', 'of', 'with', 'in', 'to', 'a', 'an', 'for', 'by', 'at', 'on', - 'is', 'it', 'its', 'as', 'my', 'our', 'their', 'has', 'have', 'had', - 'past', 'history', 'former', 'previous', 'current', 'recent', - 'disease', 'disorder', 'syndrome', 'condition', 'related', 'associated', - 'chronic', 'acute', 'primary', 'secondary', 'other', 'type', 'stage', - 'generalized', 'loss', 'level', 'levels', 'soft', 'mild', 'moderate', 'severe', -]); - -function extractKeywords(text: string): string[] { - return text - .toLowerCase() - .replace(/[^a-z0-9\s]/g, ' ') - .split(/\s+/) - .filter(w => w.length > 2 && !STOP_WORDS.has(w)); -} - -function scoreMatch(keywords: string[], traitName: string): number { - const trait = traitName.toLowerCase(); - return keywords.reduce((sum, kw) => sum + (trait.includes(kw) ? 1 : 0), 0); -} - -// Require at least half the keywords to match — avoids single-word false positives -function minScore(keywords: string[]): number { - return Math.max(1, Math.ceil(keywords.length / 2)); -} - -function effectMagnitude(r: SavedResult): number { - if (!r.riskScore || r.riskScore <= 0) return 0; - if (r.effectType === 'beta') return Math.abs(r.riskScore); - return Math.abs(Math.log(r.riskScore)); -} - -function isValidOR(r: SavedResult): boolean { - return r.effectType === 'OR' && r.riskScore > 0.05 && r.riskScore < 50; -} - -// For broad sweeps (steps 2 & 3), exclude extreme ORs — they're almost always -// specialized-cohort artifacts and inflate the "most notable" section misleadingly. -function isCredibleOR(r: SavedResult): boolean { - return isValidOR(r) && r.riskScore < 10 && r.riskScore > 0.1; -} - -// ── Result selection ── - export type SelectedResult = SavedResult & { matchedCondition?: string }; - -function selectResults(results: SavedResult[], customization: any): SelectedResult[] { - const conditions: { label: string; type: 'personal' | 'family' }[] = [ - ...(customization?.personalConditions ?? []).map((c: string) => ({ label: c, type: 'personal' as const })), - ...(customization?.familyConditions ?? []).map((c: string) => ({ label: c, type: 'family' as const })), - ]; - - const selected = new Map(); - - // 1. Condition-matched results (up to 12 per condition, half-keyword minimum) - for (const { label, type } of conditions) { - const keywords = extractKeywords(label); - if (keywords.length === 0) continue; - const threshold = minScore(keywords); - const tag = `${type === 'family' ? 'family history: ' : ''}${label}`; - - results - .filter(isValidOR) - .map(r => ({ r, score: scoreMatch(keywords, r.traitName) })) - .filter(({ score }) => score >= threshold) - .sort((a, b) => { - if (b.score !== a.score) return b.score - a.score; - return effectMagnitude(b.r) - effectMagnitude(a.r); - }) - .slice(0, 12) - .forEach(({ r }) => { - if (!selected.has(r.studyId)) selected.set(r.studyId, { ...r, matchedCondition: tag }); - }); - } - - // 2. Strongest elevated signals not yet included (up to 30) - // Use isCredibleOR to exclude extreme-OR artifacts from broad sweeps. - const MAX_OVERALL = 30; - results - .filter(r => isCredibleOR(r) && r.riskLevel === 'increased' && !selected.has(r.studyId)) - .sort((a, b) => effectMagnitude(b) - effectMagnitude(a)) - .slice(0, MAX_OVERALL - Math.min(selected.size, MAX_OVERALL)) - .forEach(r => selected.set(r.studyId, r)); - - // 3. Strongest protective signals not yet included (up to 20) - results - .filter(r => isCredibleOR(r) && r.riskLevel === 'decreased' && !selected.has(r.studyId)) - .sort((a, b) => effectMagnitude(b) - effectMagnitude(a)) - .slice(0, 20) - .forEach(r => selected.set(r.studyId, r)); - - return Array.from(selected.values()); -} - -// ── Formatting ── - -function pValueTier(r: SavedResult): string { - const mlog = parseFloat(r.pValueMlog ?? ''); - if (isNaN(mlog)) return ''; - if (mlog >= 10) return ' | p: very strong'; - if (mlog >= 7.3) return ' | p: strong'; - if (mlog >= 5) return ' | p: moderate'; - return ' | p: suggestive'; -} - -function orCaveat(score: number): string { - if (score >= 10) return ' ⚠ unusually large OR; likely rare subtype or specialized cohort'; - if (score >= 5) return ' ⚠ large OR; interpret with caution'; - return ''; -} - -function formatResult(r: SelectedResult): string { - const dir = r.riskLevel === 'increased' ? '↑' : r.riskLevel === 'decreased' ? '↓' : '→'; - const effect = r.effectType === 'OR' - ? `OR ${r.riskScore.toFixed(2)}x ${dir}${orCaveat(r.riskScore)}` - : `β=${r.riskScore >= 0 ? '+' : ''}${r.riskScore.toFixed(3)} ${dir}`; - const gene = r.mappedGene ? ` | gene: ${r.mappedGene}` : ''; - const snp = r.matchedSnp ? ` | snp: ${r.matchedSnp}` : ''; - const genotype = r.userGenotype ? ` | genotype: ${r.userGenotype}${r.riskAllele ? ` (risk allele: ${r.riskAllele})` : ''}` : ''; - const pv = pValueTier(r); - const match = r.matchedCondition ? ` [matched: ${r.matchedCondition}]` : ''; - return `${r.traitName} | ${effect}${gene}${snp}${genotype}${pv}${match}`; -} - -function buildPrompt(selected: SelectedResult[], customization: any): string { - const userCtx = buildUserContextString(customization); - const conditions = [ - ...(customization?.personalConditions ?? []), - ...(customization?.familyConditions ?? []).map((c: string) => `${c} (family history)`), - ]; - const hasHealthHistory = conditions.length > 0; - - const conditionSection = hasHealthHistory - ? `\nHEALTH HISTORY:\n${conditions.join('\n')}\n` - : ''; - - const conditionMatched = selected.filter(r => r.matchedCondition); - const elevated = selected.filter(r => !r.matchedCondition && r.riskLevel === 'increased'); - const protective = selected.filter(r => !r.matchedCondition && r.riskLevel === 'decreased'); - - const sections = [ - conditionMatched.length > 0 - ? `RESULTS MATCHED TO HEALTH HISTORY (${conditionMatched.length}):\n${conditionMatched.map(formatResult).join('\n')}` - : null, - elevated.length > 0 - ? `STRONGEST ADDITIONAL ELEVATED SIGNALS (${elevated.length}):\n${elevated.map(formatResult).join('\n')}` - : null, - protective.length > 0 - ? `STRONGEST PROTECTIVE SIGNALS (${protective.length}):\n${protective.map(formatResult).join('\n')}` - : null, - ].filter(Boolean).join('\n\n'); - - const instruction = hasHealthHistory ? ` -The user already knows they have these conditions. Do NOT simply report "you have variants for X and you reported X." That adds no value. - -Instead, write a report that tells them something genuinely new. Structure it as follows: - -**1. Genetic mechanisms underlying your conditions** -Explain WHY the user has certain conditions at a biological pathway level. What mechanism do the variants operate through? How do multiple variants converge on the same pathway? Be specific: not "increases inflammation" but which cells, which signaling molecules, which process. - -**2. What your genome protects you from** -Use the protective signals section. Identify any large protective effects, especially those that counterbalance elevated risks in the same pathway or protect against conditions that run in the family. These are often the most surprising and useful findings. - -**3. Signals outside your known health history** -From the strongest overall signals, identify anything that points to conditions or traits NOT mentioned in the user's health history. These are genuinely novel; flag them clearly as "you may not have known this." - -**4. Most notable findings** (4-5 bullets) -The most surprising, largest-effect, or cross-cutting discoveries. Prioritize findings that the user could not have known just from their symptoms. - -**5. What to investigate further** -3-4 specific research threads the user could pursue to understand their genetic dynamics better. Frame these as topics to read about or questions to explore, not clinical actions. Focus on: specific genes that appeared repeatedly and have well-studied literature, pathway connections worth understanding, or cross-trait mechanisms that link seemingly unrelated findings. - -**6. Hypotheses about you** (4 hypotheses, each 2-3 sentences) -Based on the signal patterns in these results, write 4 specific hypotheses about this person's biology or lived experience. Each should be a concrete statement grounded in the strongest signals. Frame each as "People with this signal pattern tend to..." or "This combination of variants is consistent with someone who...". Be direct and specific. These should feel like genuine insights, not generic disclaimers. Reference specific genes or findings from this report. - -Language rules (strictly enforced): -- These are population-level GWAS associations, not individual predictions. Write accordingly: "population studies associate this variant with X", "carriers of this allele show", "this signal is consistent with"; never "your genome does X" or "this drives your Y". -- For mechanisms: describe what the gene/pathway does in the population literature, not what it is doing in this person's body. "BTBD9 is associated with dopamine regulation in RLS cohorts" not "your BTBD9 variants are disrupting your dopamine signaling." -- For protective signals: "population studies find this allele associated with lower rates of X" not "your genome protects you from X." -- Include rsIDs when mentioning specific variants (e.g., "rs429358, an APOE variant"). Where the user's genotype is informative (heterozygous vs homozygous), note it: "carrying one copy of the risk allele" vs "homozygous for the risk allele." -- Flag any OR > 5x as "large effect, likely a specialized or rare-variant study; treat as uncertain." Do not anchor conclusions on it. -- Do not recommend clinical tests, doctors, or lifestyle changes. -- Distinguish between well-replicated signals (strong p-value label, named gene) and single suggestive hits. -- 700-900 words total` - : ` -Write a report organized by GENETIC MECHANISM (4-5 mechanisms). For each: -- Name specific variants and explain effect sizes in plain, concrete terms -- Identify what biological process is involved at a molecular level -- Flag any OR > 5x as a large effect likely from a specialized study - -Then add: -**Protective signals**: Associations where the allele is linked to lower rates in population studies. Use hedged language. -**Most notable findings**: 4-5 bullets of the most striking discoveries. -**What to investigate further**: 3-4 research threads the user could explore. Specific genes, pathways, or cross-trait connections with well-studied literature. - -**Hypotheses about you** (4 hypotheses, each 2-3 sentences) -Based on the signal patterns in these results, write 4 specific hypotheses about this person's biology or lived experience. Each should be a concrete statement grounded in the strongest signals. Frame each as "People with this signal pattern tend to..." or "This combination of variants is consistent with someone who...". Be direct and specific. Reference specific genes or findings from this report. - -Language rules (strictly enforced): -- These are population-level statistics. Write "population studies associate this variant with X", never "your genome does X" or deterministic personal claims. -- Do not recommend clinical tests, doctors, or lifestyle changes. - -800-1000 words.`; - - return `You are a genetic counselor writing a personalized health insights report. Your goal is to surface insights the user does not already know from their symptoms alone. -${userCtx} -${conditionSection} -${sections} - -DATA FORMAT: Trait | Effect size (↑ elevated / ↓ protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence | [matched condition] -${instruction} - -After the report, append exactly this block (required, verbatim format): - -CHAT_QUESTIONS: -- [a specific follow-up question about a gene, SNP, or mechanism from this report] -- [a question about a cross-trait pattern or surprising finding] -- [a question about a protective signal or novel finding outside the health history] -- [a question about what the user's specific genotype means for one of the key findings] -- [a question about a research thread worth exploring] - -Questions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them.`; -} +function selectResults(results: SavedResult[], customization: unknown): SelectedResult[] { return coreCall<{ selected: SelectedResult[] }>("select_report", { kind: "health", results, customization }).selected; } +function buildPrompt(selected: SelectedResult[], customization: unknown): string { return coreCall<{ messages: { content: string }[] }>("report_prompt", { kind: "health", selected, customization }).messages[1].content; } // ── Main export ── @@ -283,7 +60,7 @@ export async function generateHealthReport( [ { role: 'system', - content: 'You are a genetic epidemiologist writing an educational report about population-level GWAS associations. These data are statistical patterns from large cohorts; they are not individual predictions or diagnoses. Maintain appropriate epistemic humility throughout: write "population studies associate this variant with X" or "carriers of this allele show Y in cohort data", never "your genome does X" or "this is driving your condition." Do not convert population odds ratios into statements about what is happening in this individual\'s body. Do not use LaTeX or math notation. Do not recommend clinical tests, doctors, or healthcare appointments. Do not repeat what the user told you about their own health history as if it is a novel finding.', + content: coreCall<{ messages: { content: string }[] }>("report_prompt", { kind: "health", selected, customization }).messages[0].content, }, { role: 'user', content: prompt }, ], @@ -292,10 +69,9 @@ export async function generateHealthReport( if (!response.content) throw new Error('No report generated.'); - const [reportText, questionsBlock] = response.content.split(/\n+CHAT_QUESTIONS:\n/); - const questions = questionsBlock - ? questionsBlock.split('\n').filter(l => l.startsWith('- ')).map(l => l.slice(2).trim()).filter(Boolean) - : []; + const parsed = coreCall<{ report: string; questions: string[] }>("extract_report", response.content); + const reportText = parsed.report; + const questions = parsed.questions; onProgress({ phase: 'complete', message: 'Done', progress: 100, finalReport: reportText.trim() }); return { report: reportText.trim(), selected, questions }; diff --git a/lib/healthspan-report-service.ts b/lib/healthspan-report-service.ts index f37d84c..28e55b3 100644 --- a/lib/healthspan-report-service.ts +++ b/lib/healthspan-report-service.ts @@ -7,7 +7,7 @@ */ import type { SavedResult } from './results-manager'; -import { buildUserContextString } from './overview-report-analyzer'; +import { coreCall } from "./core"; import { callLLM } from './llm-client'; export type HealthspanReportProgress = { @@ -27,211 +27,11 @@ export type HealthspanReportResult = { questions: string[]; }; -// ── Domain definitions ── - type Domain = { id: string; label: string; keywords: string[] }; - -const DOMAINS: Domain[] = [ - { - id: 'cardiovascular', - label: 'Cardiovascular', - keywords: ['coronary', 'cardiac', 'heart', 'atrial', 'arrhythmia', 'myocardial', 'arterial', 'vascular', 'hypertension', 'cholesterol', 'triglyceride', 'lipoprotein', 'stroke', 'fibrillation', 'thrombosis', 'aortic', 'ischemic', 'angina', 'systolic', 'diastolic'], - }, - { - id: 'metabolic', - label: 'Metabolic & Endocrine', - keywords: ['diabetes', 'insulin', 'glucose', 'obesity', 'bmi', 'metabolic', 'adipose', 'adiposity', 'glycemic', 'thyroid', 'hypothyroid', 'hyperthyroid', 'testosterone', 'estrogen', 'waist', 'leptin', 'ghrelin'], - }, - { - id: 'neurological', - label: 'Neurological & Cognitive', - keywords: ['alzheimer', 'dementia', 'parkinson', 'cognitive', 'intelligence', 'brain', 'neurological', 'epilepsy', 'depression', 'anxiety', 'psychiatric', 'schizophrenia', 'bipolar', 'autism', 'adhd', 'sleep', 'insomnia', 'migraine', 'neurodegenerative', 'memory', 'educational', 'dopamine', 'serotonin'], - }, - { - id: 'immune', - label: 'Immune & Inflammatory', - keywords: ['autoimmune', 'inflammatory', 'inflammation', 'immune', 'rheumatoid', 'lupus', 'crohn', 'colitis', 'psoriasis', 'celiac', 'allergy', 'asthma', 'cytokine', 'interferon', 'ibd', 'eczema', 'sarcoidosis', 'vasculitis', 'pemphigoid'], - }, - { - id: 'musculoskeletal', - label: 'Musculoskeletal', - keywords: ['bone', 'osteoporosis', 'fracture', 'arthritis', 'osteoarthritis', 'muscle', 'tendon', 'joint', 'spine', 'lumbar', 'hip', 'knee', 'density', 'scoliosis', 'gout'], - }, - { - id: 'cancer', - label: 'Cancer Susceptibility', - keywords: ['cancer', 'carcinoma', 'tumor', 'melanoma', 'leukemia', 'lymphoma', 'glioma', 'adenocarcinoma', 'malignant', 'neoplasm', 'prostate', 'breast', 'colorectal', 'ovarian', 'cervical', 'basal', 'squamous'], - }, -]; - -export const DOMAIN_LABELS: Record = Object.fromEntries( - DOMAINS.map(d => [d.id, d.label]) -); - -// ── Helpers ── - -function isCredibleOR(r: SavedResult): boolean { - return r.effectType === 'OR' && r.riskScore > 0.1 && r.riskScore < 10; -} - -function effectMagnitude(r: SavedResult): number { - if (!r.riskScore || r.riskScore <= 0) return 0; - return Math.abs(Math.log(r.riskScore)); -} - -function domainScore(keywords: string[], traitName: string): number { - const trait = traitName.toLowerCase(); - return keywords.reduce((sum, kw) => sum + (trait.includes(kw) ? 1 : 0), 0); -} - -function pValueTier(r: SavedResult): string { - const mlog = parseFloat(r.pValueMlog ?? ''); - if (isNaN(mlog)) return ''; - if (mlog >= 10) return ' | p: very strong'; - if (mlog >= 7.3) return ' | p: strong'; - if (mlog >= 5) return ' | p: moderate'; - return ' | p: suggestive'; -} - -function formatResult(r: DomainResult): string { - const dir = r.riskLevel === 'increased' ? '↑' : r.riskLevel === 'decreased' ? '↓' : '→'; - const effect = `OR ${r.riskScore.toFixed(2)}x ${dir}`; - const gene = r.mappedGene ? ` | gene: ${r.mappedGene}` : ''; - const snp = r.matchedSnp ? ` | snp: ${r.matchedSnp}` : ''; - const genotype = r.userGenotype ? ` | genotype: ${r.userGenotype}${r.riskAllele ? ` (risk allele: ${r.riskAllele})` : ''}` : ''; - const pv = pValueTier(r); - return `${r.traitName} | ${effect}${gene}${snp}${genotype}${pv}`; -} - -// ── Selection ── - -function selectByDomain(results: SavedResult[]): { - selected: DomainResult[]; - counts: Record; -} { - const allSelected: DomainResult[] = []; - const counts: Record = {}; - const credible = results.filter(isCredibleOR); - const usedStudyIds = new Set(); - - // Assign each result to the domain where it scores highest. This prevents - // the same study appearing in multiple domain sections and bloating the prompt. - const domainAssignments = new Map(); - for (const r of credible) { - let bestDomain = ''; - let bestScore = 0; - for (const domain of DOMAINS) { - const score = domainScore(domain.keywords, r.traitName); - if (score > bestScore) { bestScore = score; bestDomain = domain.id; } - } - if (bestDomain) domainAssignments.set(r.studyId, bestDomain); - } - - for (const domain of DOMAINS) { - const matching = credible - .filter(r => domainAssignments.get(r.studyId) === domain.id) - .sort((a, b) => effectMagnitude(b) - effectMagnitude(a)); - - const elevated = matching.filter(r => r.riskLevel === 'increased').slice(0, 15); - const protective = matching.filter(r => r.riskLevel === 'decreased').slice(0, 8); - - elevated.concat(protective).forEach(r => { - allSelected.push({ ...r, domain: domain.id }); - usedStudyIds.add(r.studyId); - }); - counts[domain.id] = { elevated: elevated.length, protective: protective.length }; - } - - return { selected: allSelected, counts }; -} - -// ── Prompt ── - -function buildPrompt( - selected: DomainResult[], - counts: Record, - customization: any -): string { - const userCtx = buildUserContextString(customization); - - const personalConditions: string[] = customization?.personalConditions ?? []; - const familyConditions: string[] = customization?.familyConditions ?? []; - const hasHealthHistory = personalConditions.length > 0 || familyConditions.length > 0; - - const healthHistorySection = hasHealthHistory ? ` -HEALTH HISTORY: -${personalConditions.map(c => `- Personal: ${c}`).join('\n')} -${familyConditions.map(c => `- Family: ${c}`).join('\n')} -` : ''; - - const domainSections = DOMAINS - .filter(d => (counts[d.id]?.elevated ?? 0) + (counts[d.id]?.protective ?? 0) >= 2) - .map(d => { - const domainResults = selected.filter(r => r.domain === d.id); - const elevated = domainResults.filter(r => r.riskLevel === 'increased'); - const protective = domainResults.filter(r => r.riskLevel === 'decreased'); - const parts: string[] = []; - if (elevated.length > 0) parts.push(`Elevated (${elevated.length}):\n${elevated.map(formatResult).join('\n')}`); - if (protective.length > 0) parts.push(`Protective (${protective.length}):\n${protective.map(formatResult).join('\n')}`); - return `## ${d.label.toUpperCase()}\n${parts.join('\n')}`; - }) - .join('\n\n'); - - const healthHistoryNote = hasHealthHistory - ? `Use the health history to anchor the report: note where genetic signals reinforce known conditions, where they diverge, and which findings the user is unlikely to have encountered from their symptoms alone.` - : `No health history provided. Focus on the strongest and most surprising signals.`; - - return `You are writing a personalized genetic healthspan report. The reader is not a scientist but is curious and health-conscious. Write the way a knowledgeable friend who happens to be a geneticist would explain this: clear, specific, and honest about uncertainty. These are population-level statistics; use "population studies associate" / "carriers show" throughout, never deterministic claims. -${userCtx} -${healthHistorySection} -DATA FORMAT: Trait | Effect size (↑ elevated / ↓ protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence - -${domainSections} - -${healthHistoryNote} - -Structure the report as follows. Do NOT use the domain names as section headers: - -**Your aging profile** (write this first) -2-3 sentences. What are the 1-2 most important things to understand about this person's genetic aging biology? Be direct and specific. This is the executive summary a non-scientist will actually remember. - -**Key findings** (3-4 findings, each as a named header + 2-3 paragraphs) -Choose the 3-4 most important and interesting genetic themes across ALL domains combined. These should be the signals that matter most for long-term healthspan — the things a person would actually want to know and think about. Each finding should: -- Have a short, plain-English header (e.g., "Metabolic-cardiovascular tension", "Cognitive aging and APOE", "Immune system tuning") -- Open with a one-sentence plain statement of what the finding is -- Explain the biology in 2 paragraphs: what the gene or pathway does, what the signal pattern suggests, and why it matters for aging -- ${hasHealthHistory ? 'Connect explicitly to the user\'s health history when relevant' : 'Focus on what is most surprising or actionable from a healthspan perspective'} -- Skip pseudogenes (LINC, LOC, MIR) entirely - -**Other signals worth noting** (1 short paragraph) -Briefly mention 2-3 additional signals from domains not covered in Key findings. One sentence each. This gives breadth without diluting the main findings. - -**What to understand about your aging biology** -4 genes, each with a 1-sentence hook explaining WHY it matters for how the body ages, not just what trait it is associated with. Write these for someone who will go and search for more. - -**Hypotheses about you** (4 hypotheses, each 2-3 sentences) -Based on the patterns across these healthspan signals, write 4 specific hypotheses about this person's biology or lived experience. Each should be a concrete statement grounded in the findings. Frame each as "People with this signal pattern tend to..." or "This combination of variants is consistent with someone who...". Be direct and specific. These should feel like insights, not disclaimers. Reference specific genes or findings from this report. - -Style rules: -- No domain-name headers in the body of the report. -- The "Key findings" headers should describe the biological theme, not the domain (e.g., "The metabolic-inflammatory axis" not "Cardiovascular"). -- Write for someone who wants to understand their biology, not catalog it. -- When citing a specific variant, include the rsID where available (e.g., "rs429358, an APOE variant"). Where the genotype is informative, note it: "heterozygous for the risk allele" vs "homozygous." -- Population-level language; never "your genome does X." -- Do not recommend clinical tests, doctors, or lifestyle changes. -- 800-1000 words total - -After the report, append exactly this block (required, verbatim format): - -CHAT_QUESTIONS: -- [a specific question about a key finding, gene, or SNP from this report] -- [a question about how two signals or domains connect] -- [a question about what a specific genotype or protective signal means] -- [a question about the biology behind a surprising or cross-domain finding] -- [a question about a gene worth researching further] - -Questions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them.`; -} +const DOMAINS = coreCall<{ domains: Domain[] }>("report_rules").domains; +export const DOMAIN_LABELS: Record = Object.fromEntries(DOMAINS.map(d => [d.id, d.label])); +function selectByDomain(results: SavedResult[]): { selected: DomainResult[]; counts: Record } { return coreCall("select_report", { kind: "healthspan", results }); } +function buildPrompt(selected: DomainResult[], _counts: unknown, customization: unknown): string { return coreCall<{ messages: { content: string }[] }>("report_prompt", { kind: "healthspan", selected, customization }).messages[1].content; } // ── Main export ── @@ -261,7 +61,7 @@ export async function generateHealthspanReport( [ { role: 'system', - content: 'You are a science writer with deep genetics knowledge. Write engagingly for a reader who understands GWAS but wants insight, not inventory. Use population-level language ("population studies associate", "carriers show") but keep it fluid, not bureaucratic. Never add a disclaimer paragraph at the top; focus entirely on what is scientifically interesting. Do not recommend clinical tests, doctors, or healthcare appointments.', + content: coreCall<{ messages: { content: string }[] }>("report_prompt", { kind: "healthspan", selected, customization }).messages[0].content, }, { role: 'user', content: prompt }, ], @@ -270,10 +70,9 @@ export async function generateHealthspanReport( if (!response.content) throw new Error('No report generated.'); - const [reportText, questionsBlock] = response.content.split(/\n+CHAT_QUESTIONS:\n/); - const questions = questionsBlock - ? questionsBlock.split('\n').filter(l => l.startsWith('- ')).map(l => l.slice(2).trim()).filter(Boolean) - : []; + const parsed = coreCall<{ report: string; questions: string[] }>("extract_report", response.content); + const reportText = parsed.report; + const questions = parsed.questions; onProgress({ phase: 'complete', message: 'Done', progress: 100 }); return { report: reportText.trim(), selected, domainCounts: counts, questions }; diff --git a/lib/llm-config.ts b/lib/llm-config.ts index 81ac583..72155ea 100644 --- a/lib/llm-config.ts +++ b/lib/llm-config.ts @@ -1,3 +1,5 @@ +import { coreCall } from "./core"; + /** * Centralized LLM Configuration Service * @@ -69,100 +71,10 @@ export function saveLLMConfig(config: LLMConfig): void { /** * Get the display name for the current provider */ -export function getProviderDisplayName(provider: LLMProvider): string { - switch (provider) { - case 'nilai': - return 'nilAI'; - case 'ollama': - return 'Ollama (Local)'; - case 'huggingface': - return 'HuggingFace'; - } -} - -/** - * Get the full model identifier for API calls - */ -export function getModelIdentifier(config: LLMConfig): string { - // If custom model is selected, use the custom model name - if (config.model === 'custom' && config.customModel) { - return config.customModel; - } - - switch (config.provider) { - case 'nilai': - return config.model === 'gemma-4-26B-A4B-it' ? 'google/gemma-4-26B-A4B-it' : config.model; - case 'ollama': - return config.model; - case 'huggingface': - // For HuggingFace, append :together suffix if not already present - if (config.model === 'gemma-4-26B-A4B-it') { - return 'google/gemma-4-26B-A4B-it:together'; - } else if (config.model === 'openai/gpt-oss-120b') { - return 'openai/gpt-oss-120b:together'; - } - return config.model.includes(':') ? config.model : `${config.model}:together`; - } -} - -/** - * nilAI API endpoint - */ -const NILAI_API_ENDPOINT = 'https://api.nilai.nillion.network/nuc/v1/'; - -/** - * Get the API endpoint for the current provider - */ -export function getAPIEndpoint(config: LLMConfig): string { - switch (config.provider) { - case 'nilai': - return NILAI_API_ENDPOINT; - case 'ollama': - const address = config.ollamaAddress || 'localhost'; - const port = config.ollamaPort || 11434; - return `http://${address}:${port}`; - case 'huggingface': - return 'https://router.huggingface.co/v1'; - } -} - -/** - * Check if the current configuration requires client-side only processing - */ -export function isClientSideOnly(provider: LLMProvider): boolean { - // nilAI uses delegation tokens and is client-side only - // Ollama and HuggingFace can be called from client directly - return true; // All providers are client-side only now -} - -/** - * Get available models for a provider - */ -export function getAvailableModels(provider: LLMProvider): string[] { - switch (provider) { - case 'nilai': - return ['gemma-4-26B-A4B-it']; - case 'ollama': - return ['gemma-4-26B-A4B-it']; // Default, user can enter custom - case 'huggingface': - return ['gemma-4-26B-A4B-it']; - } -} - -/** - * Validate if a configuration is complete - */ -export function isConfigValid(config: LLMConfig): { valid: boolean; error?: string } { - if (config.provider === 'huggingface' && !config.huggingfaceApiKey) { - return { valid: false, error: 'HuggingFace API key is required' }; - } - - if (config.model === 'custom' && !config.customModel?.trim()) { - return { valid: false, error: 'Custom model name is required when "Custom..." is selected' }; - } - - // Ollama address and port have defaults ('localhost' and 11434) so always valid - // No additional validation needed - - return { valid: true }; -} +type PortableConfig = { identifier: string; endpoint: string; displayName: string; models: string[]; validation: { valid: boolean; error?: string } }; +export function getProviderDisplayName(provider: LLMProvider): string { return coreCall("llm_config", { provider }).displayName; } +export function getModelIdentifier(config: LLMConfig): string { return coreCall("llm_config", config).identifier; } +export function getAPIEndpoint(config: LLMConfig): string { return coreCall("llm_config", config).endpoint; } +export function isClientSideOnly(provider: LLMProvider): boolean { void provider; return true; } +export function getAvailableModels(provider: LLMProvider): string[] { return coreCall("llm_config", { provider }).models; } +export function isConfigValid(config: LLMConfig): { valid: boolean; error?: string } { return coreCall("llm_config", config).validation; } diff --git a/lib/overview-report-analyzer.ts b/lib/overview-report-analyzer.ts index 0fe8443..03092bd 100644 --- a/lib/overview-report-analyzer.ts +++ b/lib/overview-report-analyzer.ts @@ -1,3 +1,5 @@ +import { coreCall } from "./core"; + /** * Overview Report Analyzer * @@ -50,142 +52,18 @@ export function partitionResultsForAnalysis( results: SavedResult[], numGroups: number = 12 ): SavedResult[][] { - // Sort by effect size (distance from neutral risk score of 1.0) - // This prioritizes most significant findings - const sorted = [...results].sort((a, b) => { - const aDistance = Math.abs(a.riskScore - 1.0); - const bDistance = Math.abs(b.riskScore - 1.0); - return bDistance - aDistance; - }); - - // Stratified split: distribute high/medium/low impact evenly across groups - // Round-robin assignment ensures balanced groups - const groups: SavedResult[][] = Array.from({ length: numGroups }, () => []); - - sorted.forEach((result, idx) => { - groups[idx % numGroups].push(result); - }); - - return groups; + return coreCall("partition_results", { results, groups: numGroups }); } -/** - * Format results in optimized format for LLM context - * Format: "TraitName|RiskScore|RiskLevel|EffectType|SNP|Gene" - * Includes essential medical context (genes, SNPs) with efficient encoding - * Risk Level encoded as: i=increased, d=decreased, n=neutral - * Effect Type: OR (odds ratio) or beta (beta coefficient) - */ -export function formatResultsOptimized(results: SavedResult[]): string { - // TESTING: Temporarily limit to first 1,000 studies per batch - //const limitedResults = results.slice(0, 1000); - - return results - .map(r => { - const trait = r.traitName.substring(0, 60); // Keep reasonable length - const riskScore = r.riskScore; - const riskLevel = r.riskLevel.charAt(0); // i/d/n encoding - const effectType = r.effectType || 'OR'; // Default to OR if not specified - const snp = r.matchedSnp; - const gene = r.mappedGene || 'Unknown'; - - return `${trait}|${riskScore}|${riskLevel}|${effectType}|${snp}|${gene}`; - }) - .join('\n'); -} - -/** - * Compute overall statistics for reduce phase - */ -export function computeOverviewStatistics(results: SavedResult[]): OverviewStatistics { - const increasedRisk = results.filter(r => r.riskLevel === 'increased').length; - const decreasedRisk = results.filter(r => r.riskLevel === 'decreased').length; - const neutral = results.filter(r => r.riskLevel === 'neutral').length; - const total = results.length; - - // Get top 5 highest risk (furthest above 1.0) - const topRisks = [...results] - .filter(r => r.riskLevel === 'increased') - .sort((a, b) => b.riskScore - a.riskScore) - .slice(0, 5) - .map(r => ({ traitName: r.traitName, riskScore: r.riskScore })); - - // Get top 5 most protective (furthest below 1.0 or most negative for beta) - const topProtective = [...results] - .filter(r => r.riskLevel === 'decreased') - .sort((a, b) => { - // For OR: lower is more protective - // For beta: more negative is more protective - if (a.effectType === 'beta' && b.effectType === 'beta') { - return a.riskScore - b.riskScore; // More negative first - } - return a.riskScore - b.riskScore; // Lower OR first - }) - .slice(0, 5) - .map(r => ({ traitName: r.traitName, riskScore: r.riskScore })); - - return { - totalResults: total, - increasedRisk, - increasedRiskPercent: ((increasedRisk / total) * 100).toFixed(1), - decreasedRisk, - decreasedRiskPercent: ((decreasedRisk / total) * 100).toFixed(1), - neutral, - neutralPercent: ((neutral / total) * 100).toFixed(1), - topRisks, - topProtective, - }; -} +export function formatResultsOptimized(results: SavedResult[]): string { return coreCall("format_results", results); } +export function computeOverviewStatistics(results: SavedResult[]): OverviewStatistics { return coreCall("overview_statistics", results); } /** * Build user context string from customization data * Used in both map and reduce prompts for personalization */ export function buildUserContextString(customization: any): string { - if (!customization) return ''; - - const parts = []; - - if (customization.ethnicities?.length > 0) { - parts.push(`Ethnicities: ${customization.ethnicities.join(', ')}`); - } - if (customization.countriesOfOrigin?.length > 0) { - parts.push(`Countries of ancestral origin: ${customization.countriesOfOrigin.join(', ')}`); - } - if (customization.genderAtBirth) { - parts.push(`Gender assigned at birth: ${customization.genderAtBirth}`); - } - if (customization.age) { - parts.push(`Age: ${customization.age}`); - } - if (customization.smokingHistory) { - const smokingLabel = customization.smokingHistory === 'still-smoking' ? 'Currently smoking' : - customization.smokingHistory === 'past-smoker' ? 'Former smoker' : - 'Never smoked'; - parts.push(`Smoking history: ${smokingLabel}`); - } - if (customization.alcoholUse) { - const alcoholLabel = customization.alcoholUse.charAt(0).toUpperCase() + customization.alcoholUse.slice(1); - parts.push(`Alcohol use: ${alcoholLabel}`); - } - if (customization.medications?.length > 0) { - parts.push(`Current medications/supplements: ${customization.medications.join(', ')}`); - } - if (customization.diet) { - const dietLabel = customization.diet === 'regular' ? 'Regular diet (no restrictions)' : - customization.diet.charAt(0).toUpperCase() + customization.diet.slice(1) + ' diet'; - parts.push(`Dietary preferences: ${dietLabel}`); - } - if (customization.personalConditions?.length > 0) { - parts.push(`Personal medical history: ${customization.personalConditions.join(', ')}`); - } - if (customization.familyConditions?.length > 0) { - parts.push(`Family medical history: ${customization.familyConditions.join(', ')}`); - } - - if (parts.length === 0) return ''; - - return `\n\n${parts.join('\n')}`; + return coreCall("user_context", customization); } /** @@ -199,44 +77,7 @@ export function generateMapPrompt( compactResults: string, userContext: string ): string { - return `Here are genetic traits from GWAS Catalog matched by the Monadic DNA Explorer tool. This is the map phase. - Please analyze health, lifestyle, appearance, personality, rare disease and fun facts for the reduce phase. - Fun facts should actually be fun and not serious medical stuff. - Do not include tutorial, recommendations, next steps. The output is not meant for the user. Rather, the next reduce phase will be handled by an LLM. - Remember to base relevance regardless of risk level, i.e. include increased, decreased or neutral entries, so the user gets a holistic picture. - Output text with no tables or any fancy formatting. - CRITICAL: Do not comment on SNPs and genes I do not have. Stick to the results and do not speculate about the effect of any SNPs or genes. - Back up each assertion with a specific reference to SNPs actually present in the dataset. - -USER:${userContext} - -BATCH: ${groupNumber} of ${totalGroups} (${resultsInGroup} variants) - -DATA FORMAT (one variant per line): -Format: Trait Name|Risk Score|Risk Level|Effect Type|SNP|Gene - -Where: - - Trait Name: Full name of the genetic trait/condition - - Risk Score: Numerical risk score (actual OR value or beta coefficient) - - Risk Level: i=increased, d=decreased, n=neutral - - Effect Type: OR (odds ratio) or beta (beta coefficient) - - SNP: The specific genetic variant (rs number) - - Gene: The associated gene name - -IMPORTANT: Effect Type tells you how to interpret Risk Score: - - OR: Odds ratio (1.0 = neutral, >1.0 = increased risk, <1.0 = protective) - Example: 1.12 = 12% increased risk, 0.85 = 15% decreased risk - - beta: Beta coefficient (context-dependent, sign indicates direction) - -Examples: - Cortical surface area|1.15|i|OR|rs12345678|NFILZ - Type 2 diabetes|0.85|d|OR|rs7903146|TCF7L2 - Body mass index|0.05|i|beta|rs9939609|FTO - -DATA: - -${compactResults} -`; + return coreCall("render_prompt", { name: "generateMapPrompt", values: { groupNumber, totalGroups, resultsInGroup, totalResults, compactResults, userContext } }); } /** @@ -249,21 +90,5 @@ export function generateReducePrompt( stats: OverviewStatistics, userContext: string ): string { - const summariesText = groupSummaries - .map((summary, i) => `--- BATCH ${i + 1} ANALYSIS ---\n${summary}`) - .join('\n\n'); - - return `Here are batched analyses of genetic traits from GWAS Catalog matched by the Monadic DNA Explorer tool. I am ${userContext} - -Please summarize and produce a report (health, diet, lifestyle, appearance, personality, fun facts, rare disease) suitable for personal genomics users. - -Fun facts should actually be fun and not serious medical stuff. - -Minimize specific medical recommendation or testing recommendations as we do not want to flood the medical system with unnecessary costs. - -Output text with no tables or any fancy formatting. Section headings are ok. - -CRITICAL: Do not comment on SNPs and genes I do not have. Stick to the results and do not speculate about the effect of any SNPs or genes. - -${summariesText}`; + return coreCall("render_prompt", { name: "generateReducePrompt", values: { totalGroups, totalResults, groupSummaries, stats, userContext } }); } diff --git a/lib/parsing.ts b/lib/parsing.ts index 577cf30..b93c4ea 100644 --- a/lib/parsing.ts +++ b/lib/parsing.ts @@ -1,123 +1,21 @@ -export function parseSampleSize(text?: string | null): number | null { - if (!text) { - return null; - } - - // Extract all numbers from the text - const matches = text.match(/\d[\d,]*/g); - if (!matches) { - return null; - } - - const numbers = matches.map(v => Number(v.replace(/,/g, ""))).filter(n => !Number.isNaN(n) && n > 0); - - if (numbers.length === 0) { - return null; - } - - // Heuristic to avoid double-counting: - // If we have multiple similar numbers (within 20% of each other), they likely represent - // the same cohort described in different ways. Take the maximum instead of summing. - // Otherwise, sum them (they're likely distinct sub-cohorts). - - if (numbers.length === 1) { - return numbers[0]; - } - - const maxNum = Math.max(...numbers); - const allSimilar = numbers.every(n => Math.abs(n - maxNum) / maxNum < 0.2); - - if (allSimilar) { - // Likely duplicate descriptions of the same cohort - use the largest - return maxNum; - } - - // Different cohorts - sum them - return numbers.reduce((sum, n) => sum + n, 0); -} - -export function parsePValue(raw?: string | null): number | null { - if (!raw) { - return null; - } - - const normalized = raw.trim().toLowerCase().replace(/×/g, "x"); - - if (/^\d+(\.\d+)?(e-?\d+)?$/.test(normalized)) { - const value = Number(normalized); - return Number.isNaN(value) ? null : value; - } - - const scientificMatch = normalized.match(/([\d.]+)\s*x\s*10\s*\^\s*(-?\d+)/); - if (scientificMatch) { - const base = Number(scientificMatch[1]); - const exponent = Number(scientificMatch[2]); - if (!Number.isNaN(base) && !Number.isNaN(exponent)) { - return base * 10 ** exponent; - } - } - - const inequalityMatch = normalized.match(/<\s*([\deE+\-.x^\s]+)/); - if (inequalityMatch) { - return parsePValue(inequalityMatch[1]); - } - - return null; -} +import { coreCall } from "./core"; +export function parseSampleSize(text?: string | null): number | null { return coreCall("parse_sample_size", text ?? ""); } +export function parsePValue(raw?: string | null): number | null { return coreCall("parse_p_value", raw ?? ""); } export function parseLogPValue(raw?: string | null): number | null { - if (!raw) { - return null; - } + if (!raw) return null; const value = Number(raw); return Number.isNaN(value) ? null : value; } - export type QualityFlag = { message: string; severity: 'major' | 'minor'; }; export function computeQualityFlags(sampleSize: number | null, pValue: number | null, logPValue: number | null): QualityFlag[] { - const flags: QualityFlag[] = []; - - // Major flags - seriously questionable - if (sampleSize !== null && sampleSize < 500) { - flags.push({ - message: "Very small discovery cohort (<500 participants)", - severity: 'major' - }); - } - if (pValue !== null && pValue > 5e-7) { - flags.push({ - message: "Association well above genome-wide significance (p > 5e-7)", - severity: 'major' - }); - } - - // Minor flags - marginal issues - if (sampleSize !== null && sampleSize >= 500 && sampleSize < 1000) { - flags.push({ - message: "Small discovery cohort (500-1000 participants)", - severity: 'minor' - }); - } - if (pValue !== null && pValue > 5e-8 && pValue <= 5e-7) { - flags.push({ - message: "Association slightly above genome-wide significance (5e-8 < p < 5e-7)", - severity: 'minor' - }); - } - if (logPValue !== null && logPValue < 6) { - flags.push({ - message: "Moderate signal strength (−log10 p < 6)", - severity: 'minor' - }); - } - - return flags; + return coreCall("quality_flags", { sampleSize, pValue, logPValue }); } - +// Locale-specific presentation remains a UI responsibility. export function formatNumber(value: number | null): string { if (value === null || Number.isNaN(value)) { return "-"; diff --git a/lib/preview-insights.ts b/lib/preview-insights.ts index f06602d..77e186b 100644 --- a/lib/preview-insights.ts +++ b/lib/preview-insights.ts @@ -1,3 +1,4 @@ +import { coreCall } from "./core"; import type { SavedResult } from "./results-manager"; type PreviewCategory = @@ -11,12 +12,6 @@ type PreviewCategory = | "medication" | "other"; -type CategoryDefinition = { - id: PreviewCategory; - label: string; - keywords: string[]; -}; - export type PreviewInsight = { themes: { label: string; count: number }[]; standout: SavedResult | null; @@ -25,86 +20,7 @@ export type PreviewInsight = { headline: string; }; -const CATEGORY_DEFINITIONS: CategoryDefinition[] = [ - { - id: "body_composition", - label: "body composition", - keywords: ["body mass", "bmi", "weight", "obesity", "height", "adiposity", "waist", "lean mass", "fat mass"], - }, - { - id: "cardiometabolic", - label: "cardiometabolic traits", - keywords: ["cholesterol", "lipid", "triglyceride", "glucose", "insulin", "diabetes", "blood pressure", "coronary", "heart"], - }, - { - id: "immune", - label: "immune and inflammation", - keywords: ["immune", "inflammatory", "asthma", "allergy", "eczema", "psoriasis", "arthritis", "celiac", "crohn", "colitis"], - }, - { - id: "brain_behavior", - label: "brain and behavior", - keywords: ["cognitive", "intelligence", "education", "neuroticism", "depression", "anxiety", "adhd", "risk taking", "alcohol", "smoking"], - }, - { - id: "sleep_energy", - label: "sleep and energy", - keywords: ["sleep", "chronotype", "morning", "insomnia", "fatigue", "caffeine", "restless"], - }, - { - id: "reproductive", - label: "hormonal and reproductive traits", - keywords: ["endometriosis", "menopause", "menarche", "testosterone", "estrogen", "fertility", "reproductive", "puberty"], - }, - { - id: "appearance", - label: "visible traits", - keywords: ["hair", "skin", "eye color", "freckle", "baldness", "pigmentation", "facial", "tooth"], - }, - { - id: "medication", - label: "medication response", - keywords: ["drug", "medication", "statin", "warfarin", "metformin", "response", "adverse", "pharmacogen"], - }, -]; - -const GENERIC_TRAIT_WORDS = new Set([ - "stage", - "type", - "disease", - "disorder", - "condition", - "measurement", - "self", - "reported", - "adjusted", - "male", - "female", - "men", - "women", -]); - -function normalizeTraitName(traitName: string): string { - return traitName - .toLowerCase() - .replace(/\([^)]*\)/g, " ") - .replace(/[^a-z0-9]+/g, " ") - .split(/\s+/) - .filter((word) => word.length > 2 && !GENERIC_TRAIT_WORDS.has(word)) - .join(" ") - .trim(); -} - -export function getPreviewCategory(result: SavedResult): { id: PreviewCategory; label: string } { - const text = `${result.traitName} ${result.studyTitle} ${result.mappedGene || ""}`.toLowerCase(); - const match = CATEGORY_DEFINITIONS.find((category) => - category.keywords.some((keyword) => text.includes(keyword)) - ); - - if (!match) return { id: "other", label: "other traits" }; - return { id: match.id, label: match.label }; -} - +export function getPreviewCategory(result: SavedResult): { id: PreviewCategory; label: string } { return coreCall("preview_category", result); } export function formatPreviewEffect(result: SavedResult, compact = false): string { if (result.effectType === "beta") { return `β=${result.riskScore >= 0 ? "+" : ""}${result.riskScore.toFixed(3)}`; @@ -115,133 +31,5 @@ export function formatPreviewEffect(result: SavedResult, compact = false): strin return `${result.riskScore.toFixed(2)}x ${result.riskLevel === "increased" ? "higher relative odds" : "lower relative odds"}`; } -function parseNumeric(value?: string): number | null { - if (!value) return null; - const parsed = Number.parseFloat(value.replace(/,/g, "")); - return Number.isFinite(parsed) ? parsed : null; -} - -function effectMagnitude(result: SavedResult): number { - if (result.effectType === "beta") return Math.min(Math.abs(result.riskScore) * 4, 2.5); - if (result.riskScore <= 0 || result.riskScore > 50) return 0; - return Math.min(Math.abs(Math.log(result.riskScore)), 2.5); -} - -function evidenceScore(result: SavedResult): number { - const mlog = parseNumeric(result.pValueMlog); - const sampleText = `${result.sampleSize || ""} ${result.replicationSampleSize || ""}`; - const sampleNumbers = sampleText.match(/\d[\d,]*/g)?.map((value) => Number.parseInt(value.replace(/,/g, ""), 10)) || []; - const largestSample = sampleNumbers.length ? Math.max(...sampleNumbers) : 0; - - let score = 0; - if (mlog !== null) score += Math.min(mlog / 10, 1.5); - if (largestSample >= 100000) score += 1; - else if (largestSample >= 10000) score += 0.6; - if (result.replicationSampleSize) score += 0.4; - return score; -} - -function interestScore(result: SavedResult): number { - const category = getPreviewCategory(result).id; - const categoryBoost = - category === "other" ? 0 : - category === "appearance" ? 0.25 : - category === "cardiometabolic" || category === "immune" || category === "medication" ? 1 : - 0.75; - return effectMagnitude(result) + evidenceScore(result) + categoryBoost; -} - -function previewCategoryLimit(category: PreviewCategory): number { - if (category === "appearance") return 3; - if (category === "other") return 2; - return 3; -} - -const CATEGORY_DISPLAY_PRIORITY: Record = { - cardiometabolic: 0, - medication: 1, - immune: 2, - sleep_energy: 3, - reproductive: 4, - brain_behavior: 5, - body_composition: 6, - appearance: 7, - other: 8, -}; - -function orderPreviewResultsForDisplay(results: SavedResult[]): SavedResult[] { - return [...results].sort((a, b) => { - const categoryDiff = CATEGORY_DISPLAY_PRIORITY[getPreviewCategory(a).id] - CATEGORY_DISPLAY_PRIORITY[getPreviewCategory(b).id]; - if (categoryDiff !== 0) return categoryDiff; - return interestScore(b) - interestScore(a); - }); -} - -export function selectAhaPreviewResults(results: SavedResult[], limit = 12): SavedResult[] { - const sorted = [...results].sort((a, b) => interestScore(b) - interestScore(a)); - const selected: SavedResult[] = []; - const seenTraits = new Set(); - const categoryCounts = new Map(); - - for (const result of sorted) { - const normalized = normalizeTraitName(result.traitName); - if (normalized && seenTraits.has(normalized)) continue; - - const category = getPreviewCategory(result).id; - const categoryLimit = previewCategoryLimit(category); - if ((categoryCounts.get(category) || 0) >= categoryLimit) continue; - - selected.push(result); - if (normalized) seenTraits.add(normalized); - categoryCounts.set(category, (categoryCounts.get(category) || 0) + 1); - if (selected.length >= limit) break; - } - - if (selected.length < limit) { - for (const result of sorted) { - if (selected.some((item) => item.studyId === result.studyId)) continue; - const normalized = normalizeTraitName(result.traitName); - if (normalized && seenTraits.has(normalized)) continue; - - const category = getPreviewCategory(result).id; - if ((categoryCounts.get(category) || 0) >= previewCategoryLimit(category)) continue; - - selected.push(result); - if (normalized) seenTraits.add(normalized); - categoryCounts.set(category, (categoryCounts.get(category) || 0) + 1); - if (selected.length >= limit) break; - } - } - - return orderPreviewResultsForDisplay(selected); -} - -export function buildPreviewInsight(results: SavedResult[]): PreviewInsight { - const categoryCounts = new Map(); - for (const result of results) { - const category = getPreviewCategory(result).label; - categoryCounts.set(category, (categoryCounts.get(category) || 0) + 1); - } - - const themes = [...categoryCounts.entries()] - .sort((a, b) => b[1] - a[1]) - .slice(0, 3) - .map(([label, count]) => ({ label, count })); - - const standout = [...results] - .filter((result) => result.riskLevel !== "neutral") - .sort((a, b) => interestScore(b) - interestScore(a))[0] || results[0] || null; - - const protectiveCount = results.filter((result) => result.riskLevel === "decreased").length; - const elevatedCount = results.filter((result) => result.riskLevel === "increased").length; - - return { - themes, - standout, - protectiveCount, - elevatedCount, - headline: themes.length > 0 - ? `Your first matches point to ${themes.map((theme) => theme.label).join(", ")}.` - : "Your first matches are ready to explore.", - }; -} +export function selectAhaPreviewResults(results: SavedResult[], limit = 12): SavedResult[] { return coreCall("preview_select", { results, limit }); } +export function buildPreviewInsight(results: SavedResult[]): PreviewInsight { return coreCall("preview_insight", results); } diff --git a/lib/prime-verification.ts b/lib/prime-verification.ts index cd9e42e..a0d22da 100644 --- a/lib/prime-verification.ts +++ b/lib/prime-verification.ts @@ -1,152 +1,9 @@ -/** - * Prime number verification for discount codes - * Uses Miller-Rabin primality test for fast verification - */ +import { coreCall } from "./core"; -/** - * Modular exponentiation (a^b mod m) - * Used in Miller-Rabin primality test - */ -function modPow(base: number, exp: number, mod: number): number { - if (mod === 1) return 0; - let result = 1; - base = base % mod; - while (exp > 0) { - if (exp % 2 === 1) { - result = (result * base) % mod; - } - exp = Math.floor(exp / 2); - base = (base * base) % mod; - } - return result; -} +export function isPrime(n: number): boolean { return Number.isSafeInteger(n) && n >= 0 && coreCall("prime", n); } +export function isDelicatePrime(n: number): boolean { return Number.isSafeInteger(n) && n >= 0 && coreCall("delicate_prime", n); } +export function verifyPromoCode(code: string): { valid: boolean; discount: number; message: string } { return coreCall("promo", code); } -/** - * Miller-Rabin primality test - * Deterministic for n < 3,317,044,064,679,887,385,961,981 - */ -export function isPrime(n: number): boolean { - if (n < 2) return false; - if (n === 2 || n === 3) return true; - if (n % 2 === 0) return false; - if (n < 9) return true; - - // Small prime divisibility check (optimization) - const smallPrimes = [3, 5, 7, 11, 13, 17, 19, 23, 29]; - for (const p of smallPrimes) { - if (n % p === 0) return n === p; - } - - // Write n-1 as d * 2^r - let r = 0, d = n - 1; - while (d % 2 === 0) { - d /= 2; - r++; - } - - // Witnesses to test (deterministic for our range) - const witnesses = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]; - - witnessLoop: for (const a of witnesses) { - if (a >= n) continue; - - let x = modPow(a, d, n); - if (x === 1 || x === n - 1) continue; - - for (let i = 0; i < r - 1; i++) { - x = modPow(x, 2, n); - if (x === n - 1) continue witnessLoop; - } - - return false; - } - return true; -} - -/** - * Check if a number is a delicate prime - * A delicate prime is a prime where changing any single digit makes it composite - * - * Known delicate primes: 294001, 505447, 584141, 604171, 971767, 1062599, ... - * See: https://oeis.org/A050998 - */ -export function isDelicatePrime(n: number): boolean { - // First check if n itself is prime - if (!isPrime(n)) return false; - - const str = n.toString(); - const digits = str.split(''); - - // For each digit position - for (let i = 0; i < digits.length; i++) { - const originalDigit = digits[i]; - - // Try replacing with each digit 0-9 (except the original) - for (let d = 0; d <= 9; d++) { - const newDigit = d.toString(); - if (newDigit === originalDigit) continue; - - digits[i] = newDigit; - const modifiedStr = digits.join(''); - const modified = parseInt(modifiedStr); - - // Skip if leading zero created invalid number - if (modifiedStr.length !== str.length) { - digits[i] = originalDigit; - continue; - } - - // If ANY modification is prime, then N is not a delicate prime - if (isPrime(modified)) { - return false; - } - - digits[i] = originalDigit; - } - } - - return true; -} - -/** - * Verify a promo code and return discount multiplier - * Currently supports delicate primes for free access - * Can be extended to support other prime categories for different tiers - */ -export function verifyPromoCode(code: string): { valid: boolean; discount: number; message: string } { - const trimmed = code.trim(); - - // Must be a valid number - const num = parseInt(trimmed); - if (isNaN(num) || num.toString() !== trimmed) { - return { valid: false, discount: 1.0, message: 'Invalid code format' }; - } - - // Must be positive and reasonable size - if (num < 1 || num > 999999999) { - return { valid: false, discount: 1.0, message: 'Code out of valid range' }; - } - - // Check if it's a delicate prime (grants free access) - if (isDelicatePrime(num)) { - return { - valid: true, - discount: 0, // 0 = free (100% discount) - message: '🎉 Valid promo code! Free access granted.' - }; - } - - // Future: Add other prime categories here - // if (isBalancedPrime(num)) return { valid: true, discount: 0.5, message: '50% off with balanced prime!' }; - // if (isSafePrime(num)) return { valid: true, discount: 0.25, message: '25% off with safe prime!' }; - - return { valid: false, discount: 1.0, message: 'Not a valid promo code' }; -} - -/** - * Get list of known delicate primes for testing - * First 20 delicate primes from OEIS A050998 - */ export const KNOWN_DELICATE_PRIMES = [ 294001, 505447, diff --git a/lib/results-manager.ts b/lib/results-manager.ts index 77ee150..0b31bf8 100644 --- a/lib/results-manager.ts +++ b/lib/results-manager.ts @@ -1,3 +1,5 @@ +import { coreCall } from "./core"; + export type SavedResult = { studyId: number; gwasId?: string; // GWAS study accession ID @@ -32,53 +34,7 @@ export class ResultsManager { // All results are now stored in memory only and cleared on session end static saveResultsToFile(session: SavedSession): void { - // Convert to TSV format (tab-separated to handle commas in data) - const headers = [ - 'Study ID', - 'GWAS ID', - 'Trait Name', - 'Study Title', - 'Your Genotype', - 'Risk Allele', - 'Effect Size', - 'Effect Type', - 'Risk Score', - 'Risk Level', - 'Matched SNP', - 'Analysis Date', - 'P-Value', - 'P-Value (-log10)', - 'Mapped Gene', - 'Sample Size', - 'Replication Sample Size' - ]; - - const tsvRows = [headers.join('\t')]; - - for (const result of session.results) { - const row = [ - result.studyId, - result.gwasId || '', - (result.traitName || '').replace(/\t/g, ' '), // Replace tabs with spaces - (result.studyTitle || '').replace(/\t/g, ' '), - result.userGenotype || '', - result.riskAllele || '', - result.effectSize || '', - result.effectType || 'OR', - result.riskScore, - result.riskLevel || '', - result.matchedSnp || '', - result.analysisDate || '', - result.pValue || '', - result.pValueMlog || '', - result.mappedGene || '', - result.sampleSize || '', - result.replicationSampleSize || '' - ]; - tsvRows.push(row.join('\t')); - } - - const tsvContent = tsvRows.join('\n'); + const tsvContent = coreCall("export_results", session.results); const dataBlob = new Blob([tsvContent], { type: 'text/tab-separated-values;charset=utf-8;' }); const link = document.createElement('a'); @@ -92,75 +48,7 @@ export class ResultsManager { } static parseResultsFile(content: string, fileName: string = 'results.tsv'): SavedSession { - // Try to parse as JSON first (for backward compatibility) - if (fileName.endsWith('.json')) { - const session = JSON.parse(content) as SavedSession; - - // Validate the structure - if (!session.results || !Array.isArray(session.results)) { - throw new Error('Invalid file format'); - } - - return session; - } - - // Parse TSV format - const lines = content.split('\n').filter(line => line.trim()); - if (lines.length < 2) { - throw new Error('File is empty or has no data rows'); - } - - const headers = lines[0].split('\t'); - - // Validate headers - check for minimum required headers (backward compatibility) - const requiredHeaders = ['Study ID', 'GWAS ID', 'Trait Name', 'Study Title', 'Your Genotype', - 'Risk Allele', 'Effect Size', 'Risk Score', 'Risk Level', - 'Matched SNP', 'Analysis Date']; - - const headerCheck = requiredHeaders.every(h => headers.includes(h)); - if (!headerCheck) { - throw new Error('Invalid TSV headers - not a valid results file'); - } - - // Build header index map for flexible column ordering - const headerMap = new Map(); - headers.forEach((h, i) => headerMap.set(h, i)); - - // Parse data rows - const results: SavedResult[] = []; - for (let i = 1; i < lines.length; i++) { - const cols = lines[i].split('\t'); - if (cols.length < 11) continue; // Skip incomplete rows - - results.push({ - studyId: parseInt(cols[headerMap.get('Study ID')!]) || 0, - gwasId: cols[headerMap.get('GWAS ID')!] || undefined, - traitName: cols[headerMap.get('Trait Name')!] || '', - studyTitle: cols[headerMap.get('Study Title')!] || '', - userGenotype: cols[headerMap.get('Your Genotype')!] || '', - riskAllele: cols[headerMap.get('Risk Allele')!] || '', - effectSize: cols[headerMap.get('Effect Size')!] || '', - effectType: headerMap.has('Effect Type') ? (cols[headerMap.get('Effect Type')!] as 'OR' | 'beta') || 'OR' : 'OR', - riskScore: parseFloat(cols[headerMap.get('Risk Score')!]) || 0, - riskLevel: (cols[headerMap.get('Risk Level')!] as 'increased' | 'decreased' | 'neutral') || 'neutral', - matchedSnp: cols[headerMap.get('Matched SNP')!] || '', - analysisDate: cols[headerMap.get('Analysis Date')!] || '', - // Optional new fields (backward compatibility) - pValue: headerMap.has('P-Value') ? cols[headerMap.get('P-Value')!] || undefined : undefined, - pValueMlog: headerMap.has('P-Value (-log10)') ? cols[headerMap.get('P-Value (-log10)')!] || undefined : undefined, - mappedGene: headerMap.has('Mapped Gene') ? cols[headerMap.get('Mapped Gene')!] || undefined : undefined, - sampleSize: headerMap.has('Sample Size') ? cols[headerMap.get('Sample Size')!] || undefined : undefined, - }); - } - - const session: SavedSession = { - fileName: fileName, - createdDate: new Date().toISOString(), - totalVariants: 0, // Not stored in TSV - results - }; - - return session; + return coreCall("import_results", { content, fileName, now: new Date().toISOString() }); } static loadResultsFromFile(): Promise { diff --git a/lib/risk-calculator.ts b/lib/risk-calculator.ts index e238217..1c65bc4 100644 --- a/lib/risk-calculator.ts +++ b/lib/risk-calculator.ts @@ -1,39 +1,5 @@ -import { parseVariantIds } from './snp-utils'; - -/** - * Determines effect type and adjusts effect size based on ci_text - * GWAS Catalog stores ALL beta values as positive numbers - * Direction is encoded in ci_text ("increase" vs "decrease") - */ -export function determineEffectTypeAndSize( - orOrBeta: string | null, - ciText: string | null -): { effectType: 'OR' | 'beta'; effectSize: string } { - if (!orOrBeta) { - return { effectType: 'OR', effectSize: '1' }; - } - - // Determine effect type from ci_text - // Beta coefficients have "increase" or "decrease" in CI text - // e.g., "[NR] unit increase", "[0.0068-0.0139] unit increase", "[112.27-112.33] increase" - // Odds ratios are just numbers: e.g., "[1.08-1.15]" - const ciTextLower = ciText?.toLowerCase() ?? ''; - const hasIncrease = ciTextLower.includes('increase'); - const hasDecrease = ciTextLower.includes('decrease'); - const isBeta = hasIncrease || hasDecrease; - const effectType = isBeta ? 'beta' : 'OR'; - - // CRITICAL FIX: GWAS Catalog stores ALL beta values as positive numbers - // Direction is encoded in ci_text ("increase" vs "decrease") - // We must negate the value for "decrease" studies - let effectSize = orOrBeta; - if (isBeta && hasDecrease && !hasIncrease) { - const numericValue = parseFloat(orOrBeta); - effectSize = (-Math.abs(numericValue)).toString(); - } - - return { effectType, effectSize }; -} +import { coreCall } from "./core"; +import { parseVariantIds } from "./snp-utils"; export type UserStudyResult = { hasMatch: boolean; @@ -54,187 +20,15 @@ export type UserStudyResult = { }>; }; -// Helper function to get complement base -function getComplement(base: string): string { - const complements: Record = { - 'A': 'T', - 'T': 'A', - 'C': 'G', - 'G': 'C' - }; - return complements[base.toUpperCase()] || base; -} - -// Helper function to check if genotype is valid (not a no-call) -export function isValidGenotype(genotype: string): boolean { - // Filter out no-calls (--, -, 00, etc.) - return genotype !== '--' && - genotype !== '-' && - genotype !== '00' && - genotype.length > 0 && - !/^-+$/.test(genotype); +export function determineEffectTypeAndSize(orOrBeta: string | null, ciText: string | null): { effectType: 'OR' | 'beta'; effectSize: string } { + return coreCall("effect", { value: orOrBeta, ci: ciText }); } - -export function calculateRiskScore( - userGenotype: string, - riskAllele: string, - effectSize: string, - effectType: 'OR' | 'beta' = 'OR' -): { - score: number; - level: 'increased' | 'decreased' | 'neutral'; -} { - // Parse effect size (OR or beta) - const effect = parseFloat(effectSize); - if (isNaN(effect)) { - return { score: 1, level: 'neutral' }; - } - - // Check if genotype is valid - if (!isValidGenotype(userGenotype)) { - return { score: 1, level: 'neutral' }; - } - - // Extract the risk allele (e.g., "rs123-A" -> "A") - const riskAlleleBase = riskAllele.split('-').pop() || ''; - const userAlleles = userGenotype.split(''); - - // Count how many risk alleles the user has (0, 1, or 2) - // SECURITY FIX: Remove complement matching per audit recommendation - // GWAS Catalog and 23andMe both use forward strand, complement matching causes false positives - const riskAlleleCount = userAlleles.filter(allele => allele === riskAlleleBase).length; - - let riskScore: number; - let riskLevel: 'increased' | 'decreased' | 'neutral'; - - if (effectType === 'OR') { - // Odds ratio: OR > 1 increases risk, OR < 1 decreases risk (protective) - // Non-carriers are ALWAYS the reference baseline (1.0) in GWAS studies - - if (effect < 1) { - // Protective allele (OR < 1) - if (riskAlleleCount === 0) { - // No protective alleles = reference baseline - riskLevel = 'neutral'; - riskScore = 1.0; - } else { - // Has protective alleles = decreased risk - riskLevel = 'decreased'; - riskScore = Math.pow(effect, riskAlleleCount); - } - } else if (effect > 1) { - // Risk-increasing allele (OR > 1) - if (riskAlleleCount === 0) { - // No risk alleles = reference baseline - riskLevel = 'neutral'; - riskScore = 1.0; - } else { - // Has risk alleles = increased risk - riskLevel = 'increased'; - riskScore = Math.pow(effect, riskAlleleCount); - } - } else { - riskLevel = 'neutral'; - riskScore = 1.0; - } - } else { - // Beta coefficient - represents units of trait change, not relative risk - // Store the actual beta value (effect * alleleCount) for display - // This should NOT be interpreted as a risk multiplier - riskScore = effect * riskAlleleCount; - if (riskAlleleCount === 0) { - riskLevel = 'neutral'; - } else if (effect > 0) { - riskLevel = 'increased'; - } else { - riskLevel = 'decreased'; - } - } - - // Return the calculated score without artificial floors - return { score: riskScore, level: riskLevel }; +export function isValidGenotype(genotype: string): boolean { return coreCall("valid_genotype", genotype); } +export function calculateRiskScore(userGenotype: string, riskAllele: string, effectSize: string, effectType: 'OR' | 'beta' = 'OR'): { score: number; level: 'increased' | 'decreased' | 'neutral' } { + return coreCall("risk_score", { genotype: userGenotype, riskAllele, effectSize, effectType }); } - -export function analyzeStudyClientSide( - genotypeMap: Map, - studySnps: string, - riskAllele: string | null, - effectSize: string | null, - gwasId: string | null, - effectType: 'OR' | 'beta' = 'OR', - confidenceInterval?: string | null -): UserStudyResult { - if (!riskAllele || !effectSize || !studySnps) { - return { hasMatch: false }; - } - - // Extract SNP IDs from the study (use cached parser) - const snpList = parseVariantIds(studySnps); - - // Find ALL matching SNPs (not just the first one) - const allMatches: Array<{ - snp: string; - genotype: string; - score: number; - level: 'increased' | 'decreased' | 'neutral'; - }> = []; - - // Extract BOTH the SNP ID and allele from riskAllele (e.g., "rs57506806-G" -> ["rs57506806", "G"]) - const riskAlleleParts = riskAllele.split('-'); - const riskSnpId = riskAlleleParts[0]; - const riskAlleleBase = riskAlleleParts[1] || ''; - - for (const snp of snpList) { - if (genotypeMap.has(snp)) { - const userGenotype = genotypeMap.get(snp)!; - - // Skip invalid genotypes (no-calls, etc.) - if (!isValidGenotype(userGenotype)) { - continue; - } - - // CRITICAL FIX: If this SNP is the one with the risk allele specified, - // verify the user actually has that specific allele - // This prevents false matches when studies have multiple SNPs but only one has a risk allele - // Example: Study has "rs57506806; rs234567" with risk allele "rs57506806-G" - // User has rs234567:AG -> should NOT match (the G is in the wrong SNP) - if (snp === riskSnpId && riskAlleleBase) { - if (!userGenotype.includes(riskAlleleBase)) { - continue; // User doesn't have the risk allele for THIS specific SNP - } - } - - const { score, level } = calculateRiskScore(userGenotype, riskAllele, effectSize, effectType); - - allMatches.push({ - snp, - genotype: userGenotype, - score, - level - }); - } - } - - // No matches found - if (allMatches.length === 0) { - return { hasMatch: false }; - } - - // Return the first match as the primary result for backward compatibility - // but include all matches for comprehensive analysis - const primaryMatch = allMatches[0]; - - return { - hasMatch: true, - userGenotype: primaryMatch.genotype, - riskAllele, - effectSize, - effectType, - confidenceInterval: confidenceInterval || undefined, - riskScore: primaryMatch.score, - riskLevel: primaryMatch.level, - matchedSnp: primaryMatch.snp, - gwasId: gwasId || undefined, - allMatches: allMatches, - }; +export function analyzeStudyClientSide(genotypeMap: Map, studySnps: string, riskAllele: string | null, effectSize: string | null, gwasId: string | null, effectType: 'OR' | 'beta' = 'OR', confidenceInterval?: string | null): UserStudyResult { + // Send only relevant variants across the WASM boundary, never the full genome per study. + const genotypes = Object.fromEntries(parseVariantIds(studySnps).filter(snp => genotypeMap.has(snp)).map(snp => [snp, genotypeMap.get(snp)])); + return coreCall("analyze_study", { genotypes, snps: studySnps, riskAllele, effectSize, gwasId, effectType, confidenceInterval }); } diff --git a/lib/run-all-onboarding.ts b/lib/run-all-onboarding.ts index 85bf47a..a63978d 100644 --- a/lib/run-all-onboarding.ts +++ b/lib/run-all-onboarding.ts @@ -1,3 +1,4 @@ +import { determineEffectTypeAndSize, calculateRiskScore } from "./risk-calculator"; import * as pako from "pako"; import type { SavedResult } from "./results-manager"; @@ -206,34 +207,10 @@ export async function runAllAnalysisOnboarding( continue; } - const effectValue = Number.parseFloat(effectSize); - const ciTextLower = (cols[ciTextIdx] || "").toLowerCase(); - const hasIncrease = ciTextLower.includes("increase"); - const hasDecrease = ciTextLower.includes("decrease"); - const effectType: "OR" | "beta" = hasIncrease || hasDecrease ? "beta" : "OR"; - - let adjustedEffect = effectValue; - if (effectType === "beta" && hasDecrease && !hasIncrease) { - adjustedEffect = -Math.abs(effectValue); - } - - const riskAlleleCount = userGenotype.split("").filter((base) => base === riskAlleleBase).length; - let riskScore = 1.0; - let riskLevel: "increased" | "decreased" | "neutral" = "neutral"; - - if (!Number.isNaN(adjustedEffect) && adjustedEffect !== 0) { - if (effectType === "OR") { - if (riskAlleleCount > 0) { - riskScore = Math.pow(adjustedEffect, riskAlleleCount); - riskLevel = adjustedEffect > 1 ? "increased" : adjustedEffect < 1 ? "decreased" : "neutral"; - } - } else { - riskScore = adjustedEffect * riskAlleleCount; - if (riskAlleleCount > 0) { - riskLevel = adjustedEffect > 0 ? "increased" : adjustedEffect < 0 ? "decreased" : "neutral"; - } - } - } + const effect = determineEffectTypeAndSize(effectSize, cols[ciTextIdx] || ""); + const effectType = effect.effectType; + const adjustedEffect = Number.parseFloat(effect.effectSize); + const { score: riskScore, level: riskLevel } = calculateRiskScore(userGenotype, strongestRiskAllele, effect.effectSize, effectType); if (!hasResult(id)) { results.push({ diff --git a/lib/snp-utils.ts b/lib/snp-utils.ts index b9d310b..be1252d 100644 --- a/lib/snp-utils.ts +++ b/lib/snp-utils.ts @@ -1,3 +1,5 @@ +import { coreCall } from "./core"; + // Cache parsed SNP strings to avoid re-parsing same strings const snpParseCache = new Map(); @@ -9,10 +11,7 @@ export function parseVariantIds(snps: string | null): string[] { return snpParseCache.get(snps)!; } - const parsed = snps - .split(/[;,\s]+/) - .map((id) => id.trim()) - .filter(Boolean); + const parsed = coreCall("parse_variant_ids", snps); // Cache result (limit cache size to prevent memory bloat) if (snpParseCache.size < 100000) { diff --git a/lib/top-traits-report-service.ts b/lib/top-traits-report-service.ts index 744fa4d..5b6ef7f 100644 --- a/lib/top-traits-report-service.ts +++ b/lib/top-traits-report-service.ts @@ -6,7 +6,7 @@ */ import type { SavedResult } from './results-manager'; -import { buildUserContextString } from './overview-report-analyzer'; +import { coreCall } from "./core"; import { callLLM } from './llm-client'; export type TopTraitsReportProgress = { @@ -23,119 +23,8 @@ export type TopTraitsReportResult = { questions: string[]; }; -const TOP_N = 100; - -function effectMagnitude(r: SavedResult): number { - if (!r.riskScore) return 0; - if (r.effectType === 'beta') return Math.abs(r.riskScore); - if (r.riskScore <= 0) return 0; - return Math.abs(Math.log(r.riskScore)); -} - -function isCredible(r: SavedResult): boolean { - if (r.effectType === 'beta') return Math.abs(r.riskScore) < 50; - return r.effectType === 'OR' && r.riskScore > 0.1 && r.riskScore < 10; -} - -function pValueTier(r: SavedResult): string { - const mlog = parseFloat(r.pValueMlog ?? ''); - if (isNaN(mlog)) return ''; - if (mlog >= 10) return ' | p: very strong'; - if (mlog >= 7.3) return ' | p: strong'; - if (mlog >= 5) return ' | p: moderate'; - return ' | p: suggestive'; -} - -function formatResult(r: SavedResult): string { - const dir = r.riskLevel === 'increased' ? '↑' : r.riskLevel === 'decreased' ? '↓' : '→'; - const effect = r.effectType === 'OR' - ? `OR ${r.riskScore.toFixed(2)}x ${dir}` - : `β=${r.riskScore >= 0 ? '+' : ''}${r.riskScore.toFixed(3)} ${dir}`; - const gene = r.mappedGene ? ` | gene: ${r.mappedGene}` : ''; - const snp = r.matchedSnp ? ` | snp: ${r.matchedSnp}` : ''; - const genotype = r.userGenotype ? ` | genotype: ${r.userGenotype}${r.riskAllele ? ` (risk allele: ${r.riskAllele})` : ''}` : ''; - return `${r.traitName} | ${effect}${gene}${snp}${genotype}${pValueTier(r)}`; -} - -function selectTopTraits(results: SavedResult[]): SavedResult[] { - const credible = results.filter(isCredible); - const byType = (type: 'OR' | 'beta', n: number) => - credible - .filter(r => r.effectType === type) - .sort((a, b) => effectMagnitude(b) - effectMagnitude(a)) - .slice(0, n); - - // Take up to 25 from each type so large raw beta values don't bury OR results. - // If one type is scarce, fill remaining slots from the other. - const orResults = byType('OR', 25); - const betaResults = byType('beta', 25); - const remaining = TOP_N - orResults.length - betaResults.length; - if (remaining > 0) { - const orExtra = byType('OR', 25 + remaining).slice(orResults.length); - const betaExtra = byType('beta', 25 + remaining).slice(betaResults.length); - return [...orResults, ...betaResults, ...orExtra, ...betaExtra].slice(0, TOP_N); - } - return [...orResults, ...betaResults]; -} - -function buildPrompt(selected: SavedResult[], customization: any): string { - const userCtx = buildUserContextString(customization); - const elevated = selected.filter(r => r.riskLevel === 'increased'); - const protective = selected.filter(r => r.riskLevel === 'decreased'); - - const sections = [ - elevated.length > 0 - ? `ELEVATED SIGNALS (${elevated.length}):\n${elevated.map(formatResult).join('\n')}` - : null, - protective.length > 0 - ? `PROTECTIVE SIGNALS (${protective.length}):\n${protective.map(formatResult).join('\n')}` - : null, - ].filter(Boolean).join('\n\n'); - - return `You are writing a personalized genetics report. These are the 50 strongest genetic signals by effect size across all results. -${userCtx} - -DATA FORMAT: Trait | Effect size (↑ elevated / ↓ protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence - -${sections} - -Your job is to build a hypothesis about this person's biological character from their strongest signals. Not a gene-by-gene tour; a portrait. What kind of metabolism, immune system, and brain does population-level data suggest this profile is associated with? What is the most interesting or unexpected thing about this combination of signals? - -Structure: -**Biological portrait** (3-4 sentences) -Open with a direct hypothesis: what does this combination of strong signals most plausibly suggest about how this person's body works? Be specific and opinionated, and frame it as a hypothesis drawn from population statistics, not a fact. Mention the 1-2 most important signals by name. - -**Key themes** (3-4 themes, each as a short header + 2 paragraphs) -Choose the 3-4 most important biological stories in these results. Each theme should: -- Start with a one-sentence hypothesis about what the signals in this theme collectively suggest about this person's biology -- Second paragraph: what do the specific genes/SNPs do, and why do they cluster; what does this combination mean together -- Include specific rsIDs and genotypes where informative -- Mention both elevated and protective signals within the theme where they interact -- Skip pseudogenes (LINC, LOC, MIR) - -**What stands out** (1 paragraph) -The most surprising, counterintuitive, or medically interesting finding in these results: something the person is unlikely to have noticed on their own. Explain why it matters. - -**Hypotheses about you** (4 hypotheses, each 2-3 sentences) -Based on the patterns in these signals, write 4 specific, testable hypotheses about this person's biology or lived experience. Each should be a concrete statement about something that may be true about them — how they feel, how their body tends to work, what they may notice about themselves — grounded in the strongest signals. Frame each as "People with this signal pattern tend to..." or "This combination of variants is consistent with someone who...". Be direct and specific. These should feel like insights, not disclaimers. - -Style rules: -- Write for someone who wants to understand their own biology, not a textbook -- Population-level language throughout: "population studies associate", "carriers tend to show", never "your genome does X" -- Be specific: name the genes, cite rsIDs, note genotypes where the user's specific variant is informative -- Do not recommend clinical tests, doctors, or lifestyle changes -- 700-900 words total - -After the report, append exactly this block (required, verbatim format): - -CHAT_QUESTIONS: -- [a question about the most prominent gene or pathway from this report] -- [a question about how two of the top signals relate to each other] -- [a question about one of the protective signals or a surprising finding] -- [a question about what a specific genotype means for one of the key themes] - -Questions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them.`; -} +function selectTopTraits(results: SavedResult[]): SavedResult[] { return coreCall<{ selected: SavedResult[] }>("select_report", { kind: "toptraits", results }).selected; } +function buildPrompt(selected: SavedResult[], customization: unknown): string { return coreCall<{ messages: { content: string }[] }>("report_prompt", { kind: "toptraits", selected, customization }).messages[1].content; } export async function generateTopTraitsReport( results: SavedResult[], @@ -161,7 +50,7 @@ export async function generateTopTraitsReport( [ { role: 'system', - content: 'You are a science writer with deep genetics knowledge. Write engagingly for a reader who understands GWAS but wants insight, not inventory. Use population-level language ("population studies associate", "carriers show") but keep it fluid. Never add a disclaimer paragraph at the top. Do not recommend clinical tests, doctors, or healthcare appointments.', + content: coreCall<{ messages: { content: string }[] }>("report_prompt", { kind: "toptraits", selected, customization }).messages[0].content, }, { role: 'user', content: prompt }, ], @@ -170,10 +59,9 @@ export async function generateTopTraitsReport( if (!response.content) throw new Error('No report generated.'); - const [reportText, questionsBlock] = response.content.split(/\n+CHAT_QUESTIONS:\n/); - const questions = questionsBlock - ? questionsBlock.split('\n').filter(l => l.startsWith('- ')).map(l => l.slice(2).trim()).filter(Boolean) - : []; + const parsed = coreCall<{ report: string; questions: string[] }>("extract_report", response.content); + const reportText = parsed.report; + const questions = parsed.questions; onProgress({ phase: 'complete', message: 'Done', progress: 100 }); return { report: reportText.trim(), selected, questions }; diff --git a/package-lock.json b/package-lock.json index bfbb097..4b8879a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,6 +45,7 @@ "@types/sql.js": "^1.4.9", "eslint": "^9.39.5", "eslint-config-next": "^16.2.10", + "playwright": "^1.64.1", "typescript": "^5.9.3" }, "engines": { @@ -15357,6 +15358,35 @@ "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==", "license": "MIT" }, + "node_modules/playwright": { + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.64.1.tgz", + "integrity": "sha512-HCrVhHr5QQuwYoswEUGTb7gGp522yflbv/ST8nF4sFWGuLjQCt17Q/EubpGGSNKYn1tsTCPZxqHhHCfVURu7UA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.64.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/playwright-core": { + "version": "1.64.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", + "integrity": "sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/pngjs": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", diff --git a/package.json b/package.json index 96286a0..03cb191 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,17 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "eslint ." + "lint": "eslint .", + "core:build": "node scripts/build-core.mjs", + "core:test": "cargo test --locked -p explorer-core", + "predev": "npm run core:build", + "prebuild": "npm run core:build", + "prelint": "npm run core:build", + "pretest": "npm run core:build", + "test": "node --experimental-transform-types --test tests/core.test.mjs", + "test:public-sample:prepare": "python3 scripts/prepare-public-sample.py", + "test:public-sample:web": "node tests/e2e/public-sample-web.mjs", + "test:public-sample:api": "node tests/e2e/public-sample-api.mjs" }, "keywords": [], "author": "Monadic DNA / Recherché Inc", @@ -52,6 +62,7 @@ "@types/sql.js": "^1.4.9", "eslint": "^9.39.5", "eslint-config-next": "^16.2.10", + "playwright": "^1.64.1", "typescript": "^5.9.3" }, "packageManager": "yarn@4.9.1+sha512.f95ce356460e05be48d66401c1ae64ef84d163dd689964962c6888a9810865e39097a5e9de748876c2e0bf89b232d583c33982773e9903ae7a76257270986538" diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..7c1837e --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "1.99.1" +profile = "minimal" +targets = ["wasm32-unknown-unknown"] diff --git a/scripts/build-core.mjs b/scripts/build-core.mjs new file mode 100644 index 0000000..d998c7a --- /dev/null +++ b/scripts/build-core.mjs @@ -0,0 +1,16 @@ +import { spawnSync } from 'node:child_process'; +import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import path from 'node:path'; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); +const result = spawnSync(process.env.CARGO || 'cargo', ['build', '--locked', '-p', 'explorer-core', '--release', '--target', 'wasm32-unknown-unknown'], { cwd: root, stdio: 'inherit' }); +if (result.error) throw result.error; +if (result.status !== 0) process.exit(result.status ?? 1); +const targetRoot = process.env.CARGO_TARGET_DIR || path.join(root, 'target'); +const bytes = readFileSync(path.join(targetRoot, 'wasm32-unknown-unknown/release/explorer_core.wasm')); +const wasmModule = new WebAssembly.Module(bytes); +if (WebAssembly.Module.imports(wasmModule).length) throw new Error('Core WASM must have no platform imports'); +mkdirSync(path.join(root, 'lib/generated'), { recursive: true }); +writeFileSync(path.join(root, 'lib/generated/core-wasm.ts'), '// Generated by npm run core:build. Do not edit.\nexport const coreWasmBase64 = ' + JSON.stringify(bytes.toString('base64')) + ';\n'); +console.log(`Built shared Rust core (${bytes.length} bytes, no platform imports).`); diff --git a/scripts/build-native.mjs b/scripts/build-native.mjs new file mode 100644 index 0000000..a52b43b --- /dev/null +++ b/scripts/build-native.mjs @@ -0,0 +1,41 @@ +import { spawnSync } from 'node:child_process'; +import { mkdirSync, readdirSync, copyFileSync, existsSync } from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const root=path.resolve(path.dirname(fileURLToPath(import.meta.url)),'..'); +const platform=process.argv[2]; +const arch=process.argv[3] || (platform==='android'?'arm64-v8a':'simulator'); +const cargo=process.env.CARGO || 'cargo'; +function run(command,args,env=process.env){const result=spawnSync(command,args,{cwd:root,stdio:'inherit',env});if(result.error)throw result.error;if(result.status!==0)process.exit(result.status??1);} +function bind(library,language,out){mkdirSync(out,{recursive:true});run(cargo,['run','--locked','-p','explorer-bindgen','--','generate','--library',library,'--language',language,'--out-dir',out,'--config','crates/explorer-core/uniffi.toml','--no-format']);} +const targetDir=process.env.CARGO_TARGET_DIR||path.join(root,'target'); +// Generate bindings from the host library's metadata; cross-built binaries use the same feature/lockfile. +run(cargo,['build','--locked','--release','-p','explorer-core','--features','ffi']); +const hostLibrary=path.join(targetDir,'release',process.platform==='darwin'?'libexplorer_core.dylib':process.platform==='win32'?'explorer_core.dll':'libexplorer_core.so'); +if(platform==='android'){ + const targets={'arm64-v8a':['aarch64-linux-android','aarch64-linux-android26-clang'],'x86_64':['x86_64-linux-android','x86_64-linux-android26-clang']}; + if(!targets[arch])throw new Error('Android architecture must be arm64-v8a or x86_64'); + const sdk=process.env.ANDROID_HOME||process.env.ANDROID_SDK_ROOT; + const ndk=process.env.ANDROID_NDK_HOME||(sdk&&path.join(sdk,'ndk','27.2.12479018')); + if(!ndk||!existsSync(ndk))throw new Error('Install Android NDK 27.2.12479018 and set ANDROID_HOME or ANDROID_NDK_HOME'); + const prebuilt=path.join(ndk,'toolchains/llvm/prebuilt'); + const host=readdirSync(prebuilt).find(n=>n.startsWith(process.platform==='darwin'?'darwin-':'linux-')); + if(!host)throw new Error('Unsupported NDK host'); + const [target,compiler]=targets[arch]; + run('rustup',['target','add',target]); + const bin=path.join(prebuilt,host,'bin'); + const env={...process.env,[`CARGO_TARGET_${target.replaceAll('-','_').toUpperCase()}_LINKER`]:path.join(bin,compiler),[`CC_${target.replaceAll('-','_')}`]:path.join(bin,compiler),[`AR_${target.replaceAll('-','_')}`]:path.join(bin,'llvm-ar')}; + run(cargo,['build','--locked','--release','-p','explorer-core','--features','ffi','--target',target],env); + const libs=path.join(root,'apps/android/app/src/main/jniLibs',arch);mkdirSync(libs,{recursive:true});copyFileSync(path.join(targetDir,target,'release/libexplorer_core.so'),path.join(libs,'libexplorer_core.so')); + bind(hostLibrary,'kotlin',path.join(root,'apps/android/app/src/main/java')); +}else if(platform==='ios'){ + if(process.platform!=='darwin')throw new Error('iOS builds require macOS with Xcode'); + const target=arch==='device'?'aarch64-apple-ios':arch==='simulator'?(process.arch==='arm64'?'aarch64-apple-ios-sim':'x86_64-apple-ios'):arch; + if(!['aarch64-apple-ios','aarch64-apple-ios-sim','x86_64-apple-ios'].includes(target))throw new Error('Unknown iOS target'); + run('rustup',['target','add',target]); + run(cargo,['build','--locked','--release','-p','explorer-core','--features','ffi','--target',target]); + const generated=path.join(root,'apps/ios/Generated');bind(hostLibrary,'swift',generated); + // The Xcode project links the matching Rust static library per platform/architecture. + run('xcodegen',['generate','--spec','apps/ios/project.yml']); +}else throw new Error('Usage: node scripts/build-native.mjs android [arm64-v8a|x86_64] | ios [simulator|device]'); diff --git a/scripts/prepare-public-sample.py b/scripts/prepare-public-sample.py new file mode 100644 index 0000000..fbfddbc --- /dev/null +++ b/scripts/prepare-public-sample.py @@ -0,0 +1,96 @@ +import pathlib, json, hashlib, re, collections, urllib.request, shutil + +# Publicly volunteered research sample; raw DNA is downloaded locally, never committed. +REPO = pathlib.Path(__file__).resolve().parent.parent +SOURCE = "https://raw.githubusercontent.com/gedankenstuecke/genotyping_23andme/b5160492a1fad18c7180d7ee88b54807b1712c8e/genome_Bastian_Greshake_Full_20110503120911.txt" +SHA256 = "65d5965670d8eb1072f187ab408c9044b0fdc88846d1b0132b0f5c4a3249a92e" +root = REPO / ".test-data/public-sample" +root.mkdir(parents=True, exist_ok=True) +sample = root / "23andme-public.txt" +if not sample.exists(): + with urllib.request.urlopen(SOURCE, timeout=120) as response: + sample.write_bytes(response.read()) +if hashlib.sha256(sample.read_bytes()).hexdigest() != SHA256: + raise SystemExit("Public sample checksum mismatch") +source = (root / "23andme-public.txt").read_text() +g = {} +total = 0 +for line in source.splitlines(): + if not line or line.startswith("#"): + continue + total += 1 + c = line.split() + if len(c) < 4: + continue + rs, ch, pos, gt = c[:4] + if ( + not rs.startswith("rs") + or ch not in [str(i) for i in range(1, 23)] + ["X", "Y", "MT", "M", "26"] + or not pos.isdigit() + or int(pos) == 0 + ): + continue + if gt == "-": + gt = "--" + if gt == "--" or (len(gt) == 2 and all(x in "ATGCID-" for x in gt)): + g[rs] = gt +studies = json.loads((REPO / "tests/fixtures/public-sample-studies.json").read_text()) +(root / "studies.json").write_text(json.dumps(studies, indent=2)) +expected = [] +for s in studies: + allele = (s.get("strongest_snp_risk_allele") or "").split("-") + if len(allele) < 2 or not allele[1]: + continue + snp, base = allele[:2] + gt = g.get(snp, "") + if not re.fullmatch("[ACGT]{2}", gt) or base not in gt: + continue + if snp not in re.split(r"[;,\s]+", s.get("snps") or ""): + continue + value = s.get("or_or_beta") or "1" + ci = (s.get("ci_text") or "").lower() + effect = "beta" if "increase" in ci or "decrease" in ci else "OR" + match = re.match(r"\s*([+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?)", str(value)) + if not match: + score = 1 + direction = "neutral" + else: + size = float(match[1]) + size = -abs(size) if "decrease" in ci and "increase" not in ci else size + dosage = gt.count(base) + score = size * dosage if effect == "beta" else size**dosage + direction = ( + ("increased" if size > 0 else "decreased") + if effect == "beta" + else ("neutral" if size == 1 else "increased" if size > 1 else "decreased") + ) + expected.append( + dict( + studyId=s["id"], + matchedSnp=snp, + userGenotype=gt, + effectType=effect, + riskScore=score, + riskLevel=direction, + ) + ) +expected.sort(key=lambda r: r["studyId"]) +result = { + "totalRows": total, + "parsedVariants": len(g), + "parsedNoCalls": sum(gt == "--" for gt in g.values()), + "studies": len(studies), + "matches": len(expected), + "directions": dict(collections.Counter(r["riskLevel"] for r in expected)), + "results": expected, +} +(root / "expected.json").write_text(json.dumps(result, indent=2) + "\n") +print(json.dumps({k: v for k, v in result.items() if k != "results"}, indent=2)) + +for dest in [ + REPO / "apps/android/app/src/androidTest/assets/public-sample", + REPO / "apps/ios/TestData", +]: + dest.mkdir(parents=True, exist_ok=True) + for name in ["23andme-public.txt", "studies.json", "expected.json"]: + shutil.copyfile(root / name, dest / name) diff --git a/tests/core.test.mjs b/tests/core.test.mjs new file mode 100644 index 0000000..06b95b8 --- /dev/null +++ b/tests/core.test.mjs @@ -0,0 +1,147 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; +import { webcrypto, randomBytes } from 'node:crypto'; +import ts from 'typescript'; + +// Exercise the real TS adapter (not a reimplementation of its WASM ABI). +const generated = readFileSync(new URL('../lib/generated/core-wasm.ts', import.meta.url), 'utf8'); +const source = readFileSync(new URL('../lib/core.ts', import.meta.url), 'utf8').replace(/import \{ coreWasmBase64 \} from .*;\n/, generated); +const compiled = ts.transpileModule(source, { compilerOptions: { target: ts.ScriptTarget.ES2022, module: ts.ModuleKind.ES2022 } }).outputText; +const { coreCall } = await import('data:text/javascript;base64,' + Buffer.from(compiled).toString('base64')); +const fixtures = JSON.parse(readFileSync(new URL('fixtures/core.json', import.meta.url), 'utf8')); +for (const item of fixtures) test(item.name, () => assert.deepEqual(coreCall(item.operation, item.input), item.expected)); + +test('encrypted files interoperate with existing WebCrypto format', async () => { + const password = 'test-only passphrase'; + const salt = randomBytes(16), iv = randomBytes(12); + const input = { plaintext: 'private DNA 🧬\nrs123\tAG', password, salt: salt.toString('base64'), iv: iv.toString('base64'), iterations: 100000 }; + const sealed = coreCall('seal', input); + const material = await webcrypto.subtle.importKey('raw', new TextEncoder().encode(password), 'PBKDF2', false, ['deriveKey']); + const key = await webcrypto.subtle.deriveKey({ name: 'PBKDF2', salt, iterations: 100000, hash: 'SHA-256' }, material, { name: 'AES-GCM', length: 256 }, false, ['encrypt', 'decrypt']); + const plain = await webcrypto.subtle.decrypt({ name: 'AES-GCM', iv }, key, Buffer.from(sealed.ciphertext, 'base64')); + assert.equal(new TextDecoder().decode(plain), input.plaintext); + const existing = await webcrypto.subtle.encrypt({ name: 'AES-GCM', iv }, key, new TextEncoder().encode(input.plaintext)); + assert.equal(coreCall('open', { ...sealed, ciphertext: Buffer.from(existing).toString('base64'), password }), input.plaintext); + assert.throws(() => coreCall('open', { ...sealed, password: 'wrong' }), /incorrect password/); + assert.throws(() => coreCall('open', { ...sealed, password, ciphertext: randomBytes(32).toString('base64') })); +}); + +test('auth callback is encrypted to the requesting device and bound to state', () => { + const device = coreCall('auth_keypair', { entropy: randomBytes(32).toString('base64') }); + const other = coreCall('auth_keypair', { entropy: randomBytes(32).toString('base64') }); + const sealed = coreCall('auth_seal', { publicKey: device.publicKey, entropy: randomBytes(32).toString('base64'), iv: randomBytes(12).toString('base64'), state: 'expected-state', plaintext: 'test-token-not-a-real-credential' }); + assert.equal(coreCall('auth_open', { ...sealed, privateKey: device.privateKey, state: 'expected-state' }), 'test-token-not-a-real-credential'); + assert.throws(() => coreCall('auth_open', { ...sealed, privateKey: other.privateKey, state: 'expected-state' })); + assert.throws(() => coreCall('auth_open', { ...sealed, privateKey: device.privateKey, state: 'forged-state' })); +}); + +test('native session owns genome and result state with portable backup', () => { + const session = coreCall('session_create'); + try { + const metadata = coreCall('session_import', { session, content: '# 23andMe\nrs1 1 100 AG', fileName: 'test.txt' }); + assert.equal(metadata.count, 1); + const studies = [{ id: 1, study_accession: 'GCST1', snps: 'rs1', strongest_snp_risk_allele: 'rs1-A', or_or_beta: '2', ci_text: '[1.5-2.5]', disease_trait: 'Test trait', study: 'Test study' }]; + const matched = coreCall('session_analyze', { session, studies, now: '2026-01-01T00:00:00Z' }); + assert.equal(matched[0].riskScore, 2); + coreCall('session_analyze', { session, studies, now: '2026-01-01T00:00:00Z' }); + assert.equal(coreCall('session_results', { session }).length, 1); + const snapshot = coreCall('session_snapshot', { session }); + const exported = coreCall('session_export', { session }); + assert.match(exported, /Replication Sample Size/); + coreCall('session_clear', { session }); + assert.equal(coreCall('session_results', { session }).length, 0); + coreCall('session_restore', { session, snapshot }); + assert.equal(coreCall('session_results', { session })[0].riskScore, 2); + const imported = coreCall('import_results', { content: exported, fileName: 'test.tsv', now: '2026-01-01T00:00:00Z' }); + assert.equal(imported.results[0].matchedSnp, 'rs1'); + } finally { coreCall('session_close', { session }); } +}); + +test('unknown protocol and malformed input do not corrupt subsequent calls', () => { + assert.throws(() => coreCall('unknown', {}), /Unknown/); + assert.throws(() => coreCall('partition_results', { groups: 0 }), /Group count/); + assert.equal(coreCall('version').protocol, 1); +}); + +test('closed native sessions cannot address a new genome session', () => { + const old=coreCall('session_create'); + coreCall('session_close',{session:old}); + const current=coreCall('session_create'); + try { + assert.notEqual(old,current); + assert.throws(()=>coreCall('session_import',{session:old,content:'# 23andMe\nrs1 1 100 AG'}),/closed/); + assert.throws(()=>coreCall('session_restore',{session:current,snapshot:JSON.stringify({version:1,genotypes:{},results:[],metadata:null})}),/metadata/); + } finally { coreCall('session_close',{session:current}); } +}); + +test('nilAI NUC authentication interoperates with the existing Nillion SDK', async () => { + const { NucTokenEnvelopeSchema, NucTokenBuilder, Did, Command, Keypair, InvocationBody } = await import('@nillion/nuc'); + const server = Keypair.from('02'.repeat(32)); // Public test vector, never a live account key. + const client = coreCall('nilai_keypair', { entropy: Buffer.alloc(32, 1).toString('base64') }); + const now = 1_800_000_000; + const input = { privateKey: client.privateKey, serverKey: Buffer.from(server.publicKey()).toString('base64'), nonce: Buffer.alloc(16, 3).toString('base64'), rootNonce: Buffer.alloc(16, 4).toString('base64'), now }; + const token = coreCall('nilai_invocation', input); + const envelope = NucTokenEnvelopeSchema.parse(token); + envelope.validateSignatures(); + assert.equal(envelope.token.token.audience.toString(), new Did(server.publicKey()).toString()); + assert.equal(envelope.token.token.command.toString(), '/nil/ai/generate'); + assert.ok(envelope.token.token.body instanceof InvocationBody); + const root = NucTokenBuilder.delegation([]).command(new Command(['nil', 'ai', 'generate'])).subject(new Did(server.publicKey())).audience(new Did(server.publicKey())).expiresAt(now+600).build(server.privateKey()); + const grant = NucTokenBuilder.extending(NucTokenEnvelopeSchema.parse(root)).audience(Did.fromHex(client.publicKey)).expiresAt(now+300).meta({ usage_limit: 1 }).build(server.privateKey()); + const delegated = coreCall('nilai_invocation', { ...input, delegation: grant }); + NucTokenEnvelopeSchema.parse(delegated).validateSignatures(); + assert.equal(NucTokenEnvelopeSchema.parse(delegated).proofs.length, 2); + assert.equal(coreCall('nilai_info', grant).expiresAt, now+300); + assert.throws(() => coreCall('nilai_invocation', { ...input, delegation: grant, now: now+301 }), /expired/); + assert.throws(() => coreCall('nilai_invocation', { ...input, privateKey: '🎉' }), /Invalid/); +}); + +test('gzip import shares the same bounded decoder across native and web adapters', async () => { + const { gzipSync } = await import('node:zlib'); + const source = '# 23andMe\nrs1 1 100 AG'; + const bytes = gzipSync(source).toString('base64'); + assert.equal(coreCall('decode_file', { bytes }), source); + assert.equal(coreCall('decode_file', { bytes: Buffer.concat([gzipSync(source),Buffer.from('provider trailer')]).toString('base64') }),source); + assert.equal(coreCall('decode_file', { bytes: Buffer.concat([gzipSync('first'),gzipSync('second')]).toString('base64') }),'firstsecond'); + assert.throws(() => coreCall('decode_file', { bytes: Buffer.from([0x1f,0x8b,0]).toString('base64') })); +}); + +const reportFixtures = JSON.parse(readFileSync(new URL('fixtures/reports.json', import.meta.url), 'utf8')); +for (const fixture of reportFixtures.cases) test(`existing ${fixture.kind} selection and prompt (history=${fixture.withHistory})`, () => { + const input = { kind: fixture.kind, results: reportFixtures.results, customization: fixture.withHistory ? reportFixtures.customization : null }; + const selection = coreCall('select_report', input); + const identities = selection.selected.map(row => Object.fromEntries(Object.entries(row).filter(([key]) => ['studyId', 'domain', 'matchedCondition'].includes(key)))); + assert.deepEqual(identities, fixture.selected); + assert.deepEqual(selection.counts, fixture.counts); + const prompt = coreCall('report_prompt', input).messages[1].content; + assert.equal(prompt.replace(/\s+/g, ' ').trim(), fixture.prompt.replace(/\s+/g, ' ').trim()); +}); + +test('personalization and report questions share portable formats', () => { + const profile = coreCall('parse_profile', { age: '42', personalConditions: 'asthma, type 2 diabetes', smokingHistory: 'never-smoked' }); + assert.equal(profile.age, 42); + assert.deepEqual(profile.personalConditions, ['asthma', 'type 2 diabetes']); + assert.match(coreCall('user_context', profile), /Never smoked/); + assert.throws(() => coreCall('parse_profile', { age: 'invalid' })); + assert.deepEqual(coreCall('extract_report', 'A report.\n\nCHAT_QUESTIONS:\n- What about rs1?\n- More detail?'), { report: 'A report.', questions: ['What about rs1?', 'More detail?'] }); +}); + +test('native premium policy distinguishes free reports, subscriptions and report passes',()=>{ + assert.equal(coreCall('feature_access',{kind:'Health'}).allowed,true); + assert.deepEqual(coreCall('feature_access',{kind:'Overview'}),{allowed:false,reportType:'overview'}); + assert.deepEqual(coreCall('feature_access',{kind:'Chat',activeSubscription:true}),{allowed:true,reportType:null}); + assert.equal(coreCall('feature_access',{kind:'Healthspan',promo:'invalid'}).allowed,false); + const session=coreCall('session_create'); + try { const snapshot=coreCall('session_snapshot',{session});assert.deepEqual(coreCall('session_restore',{session,snapshot}),{count:0}); } + finally{coreCall('session_close',{session});} +}); + +test('large native imports keep only compact genotype state and enforce strict Run All matching', () => { + const session=coreCall('session_create'); + try { + coreCall('session_import',{session,content:'# 23andMe\nrs1 1 100 TT\nrs2 2 200 AG'}); + const study={id:9,snps:'rs1;rs2',strongest_snp_risk_allele:'rs1-A',or_or_beta:'2',study_accession:'GCST9'}; + assert.deepEqual(coreCall('session_analyze',{session,strict:true,studies:[study]}),[]); + } finally{coreCall('session_close',{session});} +}); diff --git a/tests/e2e/public-sample-api.mjs b/tests/e2e/public-sample-api.mjs new file mode 100644 index 0000000..58f6038 --- /dev/null +++ b/tests/e2e/public-sample-api.mjs @@ -0,0 +1,38 @@ +import assert from "node:assert/strict"; +import { readFileSync } from "node:fs"; +const expected = JSON.parse( + readFileSync( + new URL("../fixtures/public-sample-studies.json", import.meta.url), + ), +); +const origin = process.env.EXPLORER_TEST_URL || "http://127.0.0.1:3000"; +const response = await fetch( + origin + + "/api/studies?fetchAll=true&searchMode=exact&excludeLowQuality=false&excludeMissingGenotype=false&limit=1000&offset=0", +); +assert.equal(response.status, 200); +const { data } = await response.json(); +assert.equal( + data.length, + expected.length, + "This check expects the environment-specific 1,000-study development database", +); +const byId = new Map(data.map((row) => [row.id, row])); +for (const row of expected) { + const actual = byId.get(row.id); + assert.ok(actual, "Missing fixture study " + row.id); + for (const key of [ + "ci_text", + "p_value", + "pvalue_mlog", + "mapped_gene", + "initial_sample_size", + "replication_sample_size", + ]) + assert.deepEqual(actual[key], row[key], key + " for study " + row.id); +} +console.log( + "PASS real Run All API preserves effect direction/type and evidence metadata for all " + + data.length + + " study records", +); diff --git a/tests/e2e/public-sample-browser.mjs b/tests/e2e/public-sample-browser.mjs new file mode 100644 index 0000000..f8bf0b5 --- /dev/null +++ b/tests/e2e/public-sample-browser.mjs @@ -0,0 +1,50 @@ +import { chromium } from "playwright"; +export async function openBrowser() { + const browser = await chromium.launch({ + executablePath: process.env.CHROMIUM_EXECUTABLE_PATH, + headless: true, + args: ["--no-sandbox", "--disable-dev-shm-usage"], + ...(process.env.HTTP_PROXY + ? { + proxy: { + server: process.env.HTTP_PROXY, + bypass: "localhost,127.0.0.1", + }, + } + : {}), + }); + const page = await browser.newPage({ + viewport: { width: 1440, height: 1000 }, + acceptDownloads: true, + }); + // Forward external HTTP through Node's configured proxy and CA trust, preserving TLS verification. + await page.route(/^https:\/\//, async (route) => { + const req = route.request(); + if (!req.url().startsWith("https://cdn.jsdelivr.net/npm/sql.js")) { + await route.abort(); + return; + } + try { + const response = await fetch(req.url(), { + method: req.method(), + headers: req.headers(), + body: ["GET", "HEAD"].includes(req.method()) + ? undefined + : req.postDataBuffer(), + signal: AbortSignal.timeout(60000), + }); + const headers = Object.fromEntries(response.headers); + delete headers["content-encoding"]; + delete headers["content-length"]; + delete headers["transfer-encoding"]; + await route.fulfill({ + status: response.status, + headers, + body: Buffer.from(await response.arrayBuffer()), + }); + } catch { + await route.abort(); + } + }); + return { browser, page }; +} diff --git a/tests/e2e/public-sample-web.mjs b/tests/e2e/public-sample-web.mjs new file mode 100644 index 0000000..2fea1cc --- /dev/null +++ b/tests/e2e/public-sample-web.mjs @@ -0,0 +1,181 @@ +import { openBrowser } from "./public-sample-browser.mjs"; +import { readFileSync, writeFileSync } from "node:fs"; +import assert from "node:assert/strict"; +import { pbkdf2Sync, createDecipheriv } from "node:crypto"; +const root = new URL("../../.test-data/public-sample/", import.meta.url) + .pathname; +const origin = process.env.EXPLORER_TEST_URL || "http://127.0.0.1:3000"; +const expected = JSON.parse(readFileSync(root + "expected.json")); +const studies = JSON.parse(readFileSync(root + "studies.json")); +const { browser, page } = await openBrowser(); +page.setDefaultTimeout(60000); +try { + const errors = []; + page.on("pageerror", (e) => errors.push(e.message)); + page.on("dialog", async (dialog) => { + console.log("DIALOG", dialog.type(), dialog.message().slice(0, 120)); + await dialog.accept(); + }); + await page.goto(origin, { waitUntil: "domcontentloaded" }); + await page.evaluate(async (studies) => { + const db = await new Promise((res, rej) => { + const r = indexedDB.open("gwas-catalog", 1); + r.onupgradeneeded = () => { + const db = r.result; + const store = db.createObjectStore("studies", { keyPath: "id" }); + store.createIndex("snps", "snps"); + db.createObjectStore("metadata", { keyPath: "key" }); + }; + r.onsuccess = () => res(r.result); + r.onerror = () => rej(r.error); + }); + await new Promise((res, rej) => { + const tx = db.transaction(["studies", "metadata"], "readwrite"); + studies.forEach((s) => tx.objectStore("studies").put(s)); + tx.objectStore("metadata").put({ + key: "catalog", + downloadDate: new Date().toISOString(), + fileUrl: "local-api-catalog-snapshot", + totalStudies: studies.length, + version: "1.0.2", + }); + tx.oncomplete = res; + tx.onerror = () => rej(tx.error); + }); + db.close(); + }, studies); + await page.getByRole("button", { name: /my data/i }).click(); + console.log("Uploading public sample"); + const start = Date.now(); + await page + .locator("input[type=file]") + .setInputFiles(root + "23andme-public.txt"); + await page + .getByText("929,696 variants loaded", { exact: false }) + .first() + .waitFor({ timeout: 120000 }); + console.log( + "PASS actual Web upload:", + expected.parsedVariants, + "variants in", + Date.now() - start, + "ms", + ); + await page.screenshot({ path: root + "web-uploaded.png", fullPage: true }); + await page.mouse.click(1350, 950); + await page.locator(".my-data-dropdown").waitFor({ state: "hidden" }); + console.log( + "RUN buttons", + await page.getByRole("button", { name: /run all/i }).count(), + ); + await page.getByRole("button", { name: /run all/i }).click(); + await page.locator(".disclaimer-text").evaluate((e) => { + e.scrollTop = e.scrollHeight; + e.dispatchEvent(new Event("scroll", { bubbles: true })); + }); + await page.getByRole("button", { name: /I Understand/ }).click(); + await page + .getByRole("heading", { name: "Analysis Complete!", exact: true }) + .waitFor(); + + await page.screenshot({ path: root + "web-runall.png", fullPage: true }); + writeFileSync(root + "web-errors.json", JSON.stringify(errors, null, 2)); + await page.getByRole("button", { name: "Close", exact: true }).last().click(); + await page.getByRole("button", { name: /^results/i }).click(); + + await page.screenshot({ path: root + "web-results.png", fullPage: true }); + const downloadEvent = page.waitForEvent("download"); + await page.getByRole("button", { name: /save.*file|export/i }).click(); + const download = await downloadEvent; + await download.saveAs(root + "web-results.tsv"); + writeFileSync( + root + "web-check.json", + JSON.stringify( + { + variants: expected.parsedVariants, + uploadMilliseconds: Date.now() - start, + errors, + }, + null, + 2, + ), + ); + const lines = readFileSync(root + "web-results.tsv", "utf8") + .trim() + .split(/\r?\n/); + const headers = lines.shift().split("\t"); + const rows = lines.map((line) => + Object.fromEntries(line.split("\t").map((value, i) => [headers[i], value])), + ); + assert.equal(rows.length, expected.matches); + const byId = new Map(rows.map((row) => [Number(row["Study ID"]), row])); + for (const wanted of expected.results) { + const row = byId.get(wanted.studyId); + assert.ok(row); + assert.equal(row["Matched SNP"], wanted.matchedSnp); + assert.equal(row["Your Genotype"], wanted.userGenotype); + assert.equal(row["Effect Type"], wanted.effectType); + assert.equal(row["Risk Level"], wanted.riskLevel); + assert.ok(Math.abs(Number(row["Risk Score"]) - wanted.riskScore) < 1e-12); + } + console.log( + "PASS all " + + rows.length + + " exported Web scores, genotypes, SNPs, effect types and directions match independent Python reference", + ); + console.log("PASS web exported results", root + "web-results.tsv"); + await page.getByRole("button", { name: /my data/i }).click(); + await page + .getByRole("link", { name: "Import or export a portable encrypted vault" }) + .click(); + await page + .getByRole("heading", { name: "Portable encrypted vault", exact: true }) + .waitFor(); + await page.waitForLoadState("networkidle"); + const password = "public sample test only"; + await page.getByLabel("Vault passphrase").fill(password); + const backupEvent = page.waitForEvent("download"); + await page + .getByRole("button", { name: "Export encrypted vault", exact: true }) + .click(); + const backup = await backupEvent; + await backup.saveAs(root + "web-portable-vault.json"); + const sealed = JSON.parse( + readFileSync(root + "web-portable-vault.json", "utf8"), + ); + const key = pbkdf2Sync( + password, + Buffer.from(sealed.salt, "base64"), + sealed.iterations, + 32, + "sha256", + ); + const encrypted = Buffer.from(sealed.ciphertext, "base64"); + const cipher = createDecipheriv( + "aes-256-gcm", + key, + Buffer.from(sealed.iv, "base64"), + ); + cipher.setAuthTag(encrypted.subarray(-16)); + const snapshot = JSON.parse( + Buffer.concat([ + cipher.update(encrypted.subarray(0, -16)), + cipher.final(), + ]).toString("utf8"), + ); + assert.equal( + Object.keys(snapshot.genotypes).length, + expected.parsedVariants, + "Route navigation must retain in-memory DNA", + ); + assert.equal( + snapshot.results.length, + expected.matches, + "Route navigation must retain saved results", + ); + console.log( + "PASS encrypted portable vault retains the full genome and all results across navigation", + ); +} finally { + await browser.close(); +} diff --git a/tests/fixtures/core.json b/tests/fixtures/core.json new file mode 100644 index 0000000..06e3952 --- /dev/null +++ b/tests/fixtures/core.json @@ -0,0 +1,469 @@ +[ + { + "name": "split variants", + "operation": "parse_variant_ids", + "input": " rs1; rs2,rs3\trs4\nrs5 ", + "expected": [ + "rs1", + "rs2", + "rs3", + "rs4", + "rs5" + ] + }, + { + "name": "no-call ''", + "operation": "valid_genotype", + "input": "", + "expected": false + }, + { + "name": "no-call '--'", + "operation": "valid_genotype", + "input": "--", + "expected": false + }, + { + "name": "no-call '-'", + "operation": "valid_genotype", + "input": "-", + "expected": false + }, + { + "name": "no-call '---'", + "operation": "valid_genotype", + "input": "---", + "expected": false + }, + { + "name": "no-call '00'", + "operation": "valid_genotype", + "input": "00", + "expected": false + }, + { + "name": "valid insertion", + "operation": "valid_genotype", + "input": "ID", + "expected": true + }, + { + "name": "score ('AG', 'rs1-A', '1.5', 'OR')", + "operation": "risk_score", + "input": { + "genotype": "AG", + "riskAllele": "rs1-A", + "effectSize": "1.5", + "effectType": "OR" + }, + "expected": { + "score": 1.5, + "level": "increased" + } + }, + { + "name": "score ('AA', 'rs1-A', '1.5', 'OR')", + "operation": "risk_score", + "input": { + "genotype": "AA", + "riskAllele": "rs1-A", + "effectSize": "1.5", + "effectType": "OR" + }, + "expected": { + "score": 2.25, + "level": "increased" + } + }, + { + "name": "score ('GG', 'rs1-A', '1.5', 'OR')", + "operation": "risk_score", + "input": { + "genotype": "GG", + "riskAllele": "rs1-A", + "effectSize": "1.5", + "effectType": "OR" + }, + "expected": { + "score": 1, + "level": "neutral" + } + }, + { + "name": "score ('AA', 'rs1-A', '0.5', 'OR')", + "operation": "risk_score", + "input": { + "genotype": "AA", + "riskAllele": "rs1-A", + "effectSize": "0.5", + "effectType": "OR" + }, + "expected": { + "score": 0.25, + "level": "decreased" + } + }, + { + "name": "score ('AG', 'rs1-A', '-2', 'beta')", + "operation": "risk_score", + "input": { + "genotype": "AG", + "riskAllele": "rs1-A", + "effectSize": "-2", + "effectType": "beta" + }, + "expected": { + "score": -2, + "level": "decreased" + } + }, + { + "name": "score ('GG', 'rs1-A', '-2', 'beta')", + "operation": "risk_score", + "input": { + "genotype": "GG", + "riskAllele": "rs1-A", + "effectSize": "-2", + "effectType": "beta" + }, + "expected": { + "score": -0.0, + "level": "neutral" + } + }, + { + "name": "score ('--', 'rs1-A', '2', 'OR')", + "operation": "risk_score", + "input": { + "genotype": "--", + "riskAllele": "rs1-A", + "effectSize": "2", + "effectType": "OR" + }, + "expected": { + "score": 1, + "level": "neutral" + } + }, + { + "name": "score ('TC', 'rs1-A', '2', 'OR')", + "operation": "risk_score", + "input": { + "genotype": "TC", + "riskAllele": "rs1-A", + "effectSize": "2", + "effectType": "OR" + }, + "expected": { + "score": 1, + "level": "neutral" + } + }, + { + "name": "score ('AG', 'rs1-A', 'bad', 'OR')", + "operation": "risk_score", + "input": { + "genotype": "AG", + "riskAllele": "rs1-A", + "effectSize": "bad", + "effectType": "OR" + }, + "expected": { + "score": 1, + "level": "neutral" + } + }, + { + "name": "negative beta", + "operation": "effect", + "input": { + "value": "0.3", + "ci": "[0.2-0.4] unit decrease" + }, + "expected": { + "effectType": "beta", + "effectSize": "-0.3" + } + }, + { + "name": "OR interval", + "operation": "effect", + "input": { + "value": "1.3", + "ci": "[1.1-1.5]" + }, + "expected": { + "effectType": "OR", + "effectSize": "1.3" + } + }, + { + "name": "MD5 compatible file identity", + "operation": "file_hash", + "input": "abc", + "expected": "900150983cd24fb0d6963f7d28e17f72" + }, + { + "name": "sample duplicate cohorts", + "operation": "parse_sample_size", + "input": "10000 participants and 9500 described again", + "expected": 10000 + }, + { + "name": "sample distinct cohorts", + "operation": "parse_sample_size", + "input": "10000 cases, 5000 controls", + "expected": 15000 + }, + { + "name": "scientific p", + "operation": "parse_p_value", + "input": "5 x 10^-8", + "expected": 5e-08 + }, + { + "name": "inequality p", + "operation": "parse_p_value", + "input": "< 5e-8", + "expected": 5e-08 + }, + { + "name": "missing p", + "operation": "parse_p_value", + "input": "NR", + "expected": null + }, + { + "name": "invalid prime", + "operation": "prime", + "input": 1, + "expected": false + }, + { + "name": "prime", + "operation": "prime", + "input": 294001, + "expected": true + }, + { + "name": "delicate prime", + "operation": "delicate_prime", + "input": 294001, + "expected": true + }, + { + "name": "ordinary prime", + "operation": "delicate_prime", + "input": 7, + "expected": false + }, + { + "name": "invalid promo", + "operation": "promo", + "input": "000294001", + "expected": { + "valid": false, + "discount": 1, + "message": "Invalid code format" + } + }, + { + "name": "empty overview", + "operation": "overview_statistics", + "input": [], + "expected": { + "totalResults": 0, + "increasedRisk": 0, + "increasedRiskPercent": "0.0", + "decreasedRisk": 0, + "decreasedRiskPercent": "0.0", + "neutral": 0, + "neutralPercent": "0.0", + "topRisks": [], + "topProtective": [] + } + }, + { + "name": "parse 23andme", + "operation": "parse_genotype", + "input": { + "content": "# 23andMe\nrs1\t1\t100\tAG" + }, + "expected": { + "success": true, + "data": [ + { + "rsid": "rs1", + "chromosome": "1", + "position": 100, + "genotype": "AG" + } + ], + "totalVariants": 1, + "validVariants": 1, + "detectedFormat": "23andme" + } + }, + { + "name": "parse monadic", + "operation": "parse_genotype", + "input": { + "content": "RSID,CHROMOSOME,POSITION,RESULT\nrs1,1,100,AG" + }, + "expected": { + "success": true, + "data": [ + { + "rsid": "rs1", + "chromosome": "1", + "position": 100, + "genotype": "AG" + } + ], + "totalVariants": 1, + "validVariants": 1, + "detectedFormat": "monadic" + } + }, + { + "name": "parse ancestry", + "operation": "parse_genotype", + "input": { + "content": "rsid\tchromosome\tposition\tallele1\tallele2\nrs1\t26\t100\tA\tG" + }, + "expected": { + "success": true, + "data": [ + { + "rsid": "rs1", + "chromosome": "MT", + "position": 100, + "genotype": "AG" + } + ], + "totalVariants": 1, + "validVariants": 1, + "detectedFormat": "ancestrydna" + } + }, + { + "name": "parse no-call", + "operation": "parse_genotype", + "input": { + "content": "# 23andMe\nrs1 1 100 -" + }, + "expected": { + "success": true, + "data": [ + { + "rsid": "rs1", + "chromosome": "1", + "position": 100, + "genotype": "--" + } + ], + "totalVariants": 1, + "validVariants": 1, + "detectedFormat": "23andme" + } + }, + { + "name": "parse myheritage", + "operation": "parse_genotype", + "input": { + "content": "# MyHeritage\nRSID,CHROMOSOME,POSITION,RESULT\n\"rs1\",\"1\",\"100\",\"AG\"" + }, + "expected": { + "success": true, + "data": [ + { + "rsid": "rs1", + "chromosome": "1", + "position": 100, + "genotype": "AG" + } + ], + "totalVariants": 1, + "validVariants": 1, + "detectedFormat": "myheritage" + } + }, + { + "name": "parse ftdna", + "operation": "parse_genotype", + "input": { + "content": "# FamilyTreeDNA\n# name\tchromosome\tposition\tallele1\tallele2\nrs1\t1\t100\tA\tG" + }, + "expected": { + "success": true, + "data": [ + { + "rsid": "rs1", + "chromosome": "1", + "position": 100, + "genotype": "AG" + } + ], + "totalVariants": 1, + "validVariants": 1, + "detectedFormat": "ftdna" + } + }, + { + "name": "parse livingdna", + "operation": "parse_genotype", + "input": { + "content": "# Living DNA\nrs1 1 100 A G" + }, + "expected": { + "success": true, + "data": [ + { + "rsid": "rs1", + "chromosome": "1", + "position": 100, + "genotype": "AG" + } + ], + "totalVariants": 1, + "validVariants": 1, + "detectedFormat": "livingdna" + } + }, + { + "name": "parse mapmygenome", + "operation": "parse_genotype", + "input": { + "content": "SNP Name\tChr\tPosition\tAllele1...Plus\tAllele2...Plus\nrs1\t1\t100\tA\tG" + }, + "expected": { + "success": true, + "data": [ + { + "rsid": "rs1", + "chromosome": "1", + "position": 100, + "genotype": "AG" + } + ], + "totalVariants": 1, + "validVariants": 1, + "detectedFormat": "mapmygenome" + } + }, + { + "name": "exact SNP allele check", + "operation": "analyze_study", + "input": { + "genotypes": { + "rs1": "TT" + }, + "snps": "rs1", + "riskAllele": "rs1-A", + "effectSize": "2" + }, + "expected": { + "hasMatch": false + } + } +] diff --git a/tests/fixtures/public-sample-studies.json b/tests/fixtures/public-sample-studies.json new file mode 100644 index 0000000..0cbcba6 --- /dev/null +++ b/tests/fixtures/public-sample-studies.json @@ -0,0 +1,15002 @@ +[ + { + "id": 3, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10174373", + "strongest_snp_risk_allele": "rs10174373-G", + "or_or_beta": "0.0133", + "ci_text": "[0.01-0.0166] unit decrease", + "p_value": "9E-16", + "pvalue_mlog": "15.045757490560675", + "mapped_gene": "CPS1 - RPS27P10", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 4, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4673614", + "strongest_snp_risk_allele": "rs4673614-T", + "or_or_beta": "0.0122", + "ci_text": "[0.0089-0.0155] unit increase", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "ERBB4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 5, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs16847879", + "strongest_snp_risk_allele": "rs16847879-G", + "or_or_beta": "0.0114", + "ci_text": "[0.0079-0.0149] unit decrease", + "p_value": "7E-10", + "pvalue_mlog": "9.154901959985743", + "mapped_gene": "ERBB4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 6, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7599312", + "strongest_snp_risk_allele": "rs7599312-G", + "or_or_beta": "0.0192", + "ci_text": "[0.016-0.023] unit increase", + "p_value": "1E-30", + "pvalue_mlog": "30.0", + "mapped_gene": "ERBB4 - LINC01878", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 7, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4480977", + "strongest_snp_risk_allele": "rs4480977-G", + "or_or_beta": "0.0094", + "ci_text": "[0.0065-0.0123] unit decrease", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "VWC2L", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 8, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7607369", + "strongest_snp_risk_allele": "rs7607369-G", + "or_or_beta": "0.0113", + "ci_text": "[0.0084-0.0142] unit decrease", + "p_value": "2E-14", + "pvalue_mlog": "13.698970004336019", + "mapped_gene": "CTDSP1 - VIL1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 9, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs16859517", + "strongest_snp_risk_allele": "rs16859517-C", + "or_or_beta": "0.0221", + "ci_text": "[0.015-0.029] unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "NHEJ1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 10, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6725931", + "strongest_snp_risk_allele": "rs6725931-C", + "or_or_beta": "0.0174", + "ci_text": "[0.013-0.022] unit decrease", + "p_value": "3E-16", + "pvalue_mlog": "15.522878745280337", + "mapped_gene": "RESP18 - DNPEP", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 11, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs55760516", + "strongest_snp_risk_allele": "rs55760516-G", + "or_or_beta": "0.0083", + "ci_text": "[0.0056-0.011] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "ASIC4-AS1, SPEG", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 12, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3770176", + "strongest_snp_risk_allele": "rs3770176-C", + "or_or_beta": "0.01", + "ci_text": "[0.0065-0.0135] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "EPHA4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 13, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2943634", + "strongest_snp_risk_allele": "rs2943634-C", + "or_or_beta": "0.0211", + "ci_text": "[0.016-0.026] unit decrease", + "p_value": "3E-19", + "pvalue_mlog": "18.522878745280337", + "mapped_gene": "NYAP2 - MIR5702", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 14, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6723774", + "strongest_snp_risk_allele": "rs6723774-C", + "or_or_beta": "0.0085", + "ci_text": "[0.0056-0.0114] unit increase", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "RHBDD1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 15, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4533465", + "strongest_snp_risk_allele": "rs4533465-G", + "or_or_beta": "0.0118", + "ci_text": "[0.0089-0.0147] unit increase", + "p_value": "3E-14", + "pvalue_mlog": "13.522878745280337", + "mapped_gene": "SPHKAP", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 16, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4455149", + "strongest_snp_risk_allele": "rs4455149-G", + "or_or_beta": "0.0139", + "ci_text": "[0.011-0.017] unit decrease", + "p_value": "1E-18", + "pvalue_mlog": "18.0", + "mapped_gene": "SPHKAP", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 17, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs878444", + "strongest_snp_risk_allele": "rs878444-G", + "or_or_beta": "0.0102", + "ci_text": "[0.0067-0.0137] unit decrease", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "COPS7B - MIR1471", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 18, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11677466", + "strongest_snp_risk_allele": "rs11677466-T", + "or_or_beta": "0.0151", + "ci_text": "[0.011-0.02] unit decrease", + "p_value": "6E-11", + "pvalue_mlog": "10.221848749616356", + "mapped_gene": "DIS3L2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 19, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs908443", + "strongest_snp_risk_allele": "rs908443-G", + "or_or_beta": "0.014", + "ci_text": "[0.01-0.018] unit decrease", + "p_value": "3E-15", + "pvalue_mlog": "14.522878745280337", + "mapped_gene": "AGAP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 20, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4414632", + "strongest_snp_risk_allele": "rs4414632-C", + "or_or_beta": "0.0133", + "ci_text": "[0.0096-0.017] unit increase", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "AGAP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 21, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2317299", + "strongest_snp_risk_allele": "rs2317299-C", + "or_or_beta": "0.0105", + "ci_text": "[0.0076-0.0134] unit decrease", + "p_value": "6E-12", + "pvalue_mlog": "11.221848749616356", + "mapped_gene": "AGAP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 22, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10933597", + "strongest_snp_risk_allele": "rs10933597-T", + "or_or_beta": "0.0099", + "ci_text": "[0.0068-0.013] unit decrease", + "p_value": "8E-10", + "pvalue_mlog": "9.096910013008056", + "mapped_gene": "U3 - GPC1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 23, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7601000", + "strongest_snp_risk_allele": "rs7601000-T", + "or_or_beta": "0.0109", + "ci_text": "[0.0078-0.014] unit increase", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "ATG4B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 24, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2322977", + "strongest_snp_risk_allele": "rs2322977-C", + "or_or_beta": "0.0102", + "ci_text": "[0.0069-0.0135] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "RN7SL553P - MTARC2P1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 25, + "study_accession": "GCST90270220", + "disease_trait": "Inclusion body myositis", + "study": "Genome-wide imputation identifies novel associations and localises signals in idiopathic inflammatory myopathies.", + "snps": "rs13172971", + "strongest_snp_risk_allele": "rs13172971-?", + "or_or_beta": "1.55", + "ci_text": "[1.27-1.9]", + "p_value": "1E-5", + "pvalue_mlog": "5.0", + "mapped_gene": "TMEM174 - LINC02230", + "initial_sample_size": "252 European ancestry cases, 10,260 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 26, + "study_accession": "GCST90270220", + "disease_trait": "Inclusion body myositis", + "study": "Genome-wide imputation identifies novel associations and localises signals in idiopathic inflammatory myopathies.", + "snps": "rs4713570", + "strongest_snp_risk_allele": "rs4713570-?", + "or_or_beta": "4.15", + "ci_text": "[3.39-5.09]", + "p_value": "4E-45", + "pvalue_mlog": "44.39794000867204", + "mapped_gene": "HLA-DQA1 - HLA-DQB1", + "initial_sample_size": "252 European ancestry cases, 10,260 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 27, + "study_accession": "GCST90270220", + "disease_trait": "Inclusion body myositis", + "study": "Genome-wide imputation identifies novel associations and localises signals in idiopathic inflammatory myopathies.", + "snps": "rs12442533", + "strongest_snp_risk_allele": "rs12442533-?", + "or_or_beta": "0.71", + "ci_text": "[0.56-0.88]", + "p_value": "8E-6", + "pvalue_mlog": "5.096910013008056", + "mapped_gene": "SLC28A2-AS1", + "initial_sample_size": "252 European ancestry cases, 10,260 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 28, + "study_accession": "GCST90270221", + "disease_trait": "Idiopathic inflammatory myopathy with anti-Jo1 positive", + "study": "Genome-wide imputation identifies novel associations and localises signals in idiopathic inflammatory myopathies.", + "snps": "rs115636515", + "strongest_snp_risk_allele": "rs115636515-?", + "or_or_beta": "0.36", + "ci_text": "[0.22-0.6]", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": "PLD5 - RSL24D1P4", + "initial_sample_size": "311 European ancestry cases, 10,260 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 29, + "study_accession": "GCST90270221", + "disease_trait": "Idiopathic inflammatory myopathy with anti-Jo1 positive", + "study": "Genome-wide imputation identifies novel associations and localises signals in idiopathic inflammatory myopathies.", + "snps": "rs9268813", + "strongest_snp_risk_allele": "rs9268813-?", + "or_or_beta": "5.15", + "ci_text": "[4.21-6.32]", + "p_value": "5E-65", + "pvalue_mlog": "64.30102999566398", + "mapped_gene": "HLA-DRA - HLA-DRB9", + "initial_sample_size": "311 European ancestry cases, 10,260 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 30, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10510321", + "strongest_snp_risk_allele": "rs10510321-C", + "or_or_beta": "0.013", + "ci_text": "[0.0093-0.0167] unit decrease", + "p_value": "5E-12", + "pvalue_mlog": "11.301029995663981", + "mapped_gene": "RN7SL553P - MTARC2P1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 31, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1554194", + "strongest_snp_risk_allele": "rs1554194-G", + "or_or_beta": "0.0103", + "ci_text": "[0.0074-0.0132] unit decrease", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "LMCD1-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 32, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2251361", + "strongest_snp_risk_allele": "rs2251361-G", + "or_or_beta": "0.01", + "ci_text": "[0.0069-0.0131] unit increase", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "THUMPD3-AS1, THUMPD3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 33, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11542009", + "strongest_snp_risk_allele": "rs11542009-C", + "or_or_beta": "0.017", + "ci_text": "[0.013-0.021] unit decrease", + "p_value": "1E-15", + "pvalue_mlog": "15.0", + "mapped_gene": "SETD5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 34, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs9875667", + "strongest_snp_risk_allele": "rs9875667-C", + "or_or_beta": "0.0121", + "ci_text": "[0.008-0.0162] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "BRK1 - VHL", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 35, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs113339600", + "strongest_snp_risk_allele": "rs113339600-C", + "or_or_beta": "0.0198", + "ci_text": "[0.013-0.026] unit decrease", + "p_value": "8E-9", + "pvalue_mlog": "8.096910013008056", + "mapped_gene": "HRH1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 36, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2606736", + "strongest_snp_risk_allele": "rs2606736-C", + "or_or_beta": "0.0089", + "ci_text": "[0.0062-0.0116] unit increase", + "p_value": "8E-11", + "pvalue_mlog": "10.096910013008056", + "mapped_gene": "ATG7", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 37, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17776719", + "strongest_snp_risk_allele": "rs17776719-G", + "or_or_beta": "0.0149", + "ci_text": "[0.011-0.019] unit increase", + "p_value": "8E-12", + "pvalue_mlog": "11.096910013008056", + "mapped_gene": "VGLL4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 38, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2920503", + "strongest_snp_risk_allele": "rs2920503-C", + "or_or_beta": "0.0136", + "ci_text": "[0.01-0.017] unit increase", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "GSTM5P1 - PPARG", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 39, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1801282", + "strongest_snp_risk_allele": "rs1801282-G", + "or_or_beta": "0.0215", + "ci_text": "[0.018-0.025] unit increase", + "p_value": "5E-26", + "pvalue_mlog": "25.30102999566398", + "mapped_gene": "PPARG", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 40, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2569994", + "strongest_snp_risk_allele": "rs2569994-G", + "or_or_beta": "0.0105", + "ci_text": "[0.0074-0.0136] unit increase", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "LINC02022 - IQSEC1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 41, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs190809678", + "strongest_snp_risk_allele": "rs190809678-G", + "or_or_beta": "0.0461", + "ci_text": "[0.03-0.062] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "IQSEC1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 42, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3732671", + "strongest_snp_risk_allele": "rs3732671-C", + "or_or_beta": "0.0103", + "ci_text": "[0.0078-0.0128] unit decrease", + "p_value": "9E-15", + "pvalue_mlog": "14.045757490560675", + "mapped_gene": "NUP210", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 43, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2470538", + "strongest_snp_risk_allele": "rs2470538-G", + "or_or_beta": "0.0082", + "ci_text": "[0.0053-0.0111] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "BTD, ANKRD28", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 44, + "study_accession": "GCST90268402", + "disease_trait": "Left ventricle sphericity index", + "study": "Deep learning-enabled analysis of medical images identifies cardiac sphericity as an early marker of cardiomyopathy and related outcomes.", + "snps": "rs11756438", + "strongest_snp_risk_allele": "rs11756438-?", + "or_or_beta": "0.004", + "ci_text": "unit increase", + "p_value": "1E-15", + "pvalue_mlog": "15.0", + "mapped_gene": "CEP85L", + "initial_sample_size": "22,528 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 45, + "study_accession": "GCST90268402", + "disease_trait": "Left ventricle sphericity index", + "study": "Deep learning-enabled analysis of medical images identifies cardiac sphericity as an early marker of cardiomyopathy and related outcomes.", + "snps": "rs1461990", + "strongest_snp_risk_allele": "rs1461990-?", + "or_or_beta": "0.003", + "ci_text": "unit increase", + "p_value": "5E-10", + "pvalue_mlog": "9.301029995663981", + "mapped_gene": "ABRA - HMGB1P46", + "initial_sample_size": "22,528 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 46, + "study_accession": "GCST90268402", + "disease_trait": "Left ventricle sphericity index", + "study": "Deep learning-enabled analysis of medical images identifies cardiac sphericity as an early marker of cardiomyopathy and related outcomes.", + "snps": "chr3:73578036", + "strongest_snp_risk_allele": "chr3:73578036-?", + "or_or_beta": "0.003", + "ci_text": "unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": null, + "initial_sample_size": "22,528 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 47, + "study_accession": "GCST90268402", + "disease_trait": "Left ventricle sphericity index", + "study": "Deep learning-enabled analysis of medical images identifies cardiac sphericity as an early marker of cardiomyopathy and related outcomes.", + "snps": "rs199682224", + "strongest_snp_risk_allele": "rs199682224-?", + "or_or_beta": "0.006", + "ci_text": "unit increase", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "HLA-DRB5", + "initial_sample_size": "22,528 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 48, + "study_accession": "GCST90269910", + "disease_trait": "Left ventricle short axis", + "study": "Deep learning-enabled analysis of medical images identifies cardiac sphericity as an early marker of cardiomyopathy and related outcomes.", + "snps": "rs57912492", + "strongest_snp_risk_allele": "rs57912492-?", + "or_or_beta": "0.24", + "ci_text": "unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "SLC35F1 - CEP85L", + "initial_sample_size": "22,528 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 49, + "study_accession": "GCST90269910", + "disease_trait": "Left ventricle short axis", + "study": "Deep learning-enabled analysis of medical images identifies cardiac sphericity as an early marker of cardiomyopathy and related outcomes.", + "snps": "rs462797", + "strongest_snp_risk_allele": "rs462797-?", + "or_or_beta": "0.46", + "ci_text": "unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "HS3ST2", + "initial_sample_size": "22,528 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 50, + "study_accession": "GCST90269910", + "disease_trait": "Left ventricle short axis", + "study": "Deep learning-enabled analysis of medical images identifies cardiac sphericity as an early marker of cardiomyopathy and related outcomes.", + "snps": "rs111692972", + "strongest_snp_risk_allele": "rs111692972-?", + "or_or_beta": "0.44", + "ci_text": "unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "TTN", + "initial_sample_size": "22,528 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 51, + "study_accession": "GCST90269911", + "disease_trait": "Left ventricle long axis", + "study": "Deep learning-enabled analysis of medical images identifies cardiac sphericity as an early marker of cardiomyopathy and related outcomes.", + "snps": "chr3:73578036", + "strongest_snp_risk_allele": "chr3:73578036-?", + "or_or_beta": "0.37", + "ci_text": "unit decrease", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": null, + "initial_sample_size": "22,528 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 52, + "study_accession": "GCST90269911", + "disease_trait": "Left ventricle long axis", + "study": "Deep learning-enabled analysis of medical images identifies cardiac sphericity as an early marker of cardiomyopathy and related outcomes.", + "snps": "rs72007904", + "strongest_snp_risk_allele": "rs72007904-?", + "or_or_beta": "0.36", + "ci_text": "unit decrease", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "ABRA - HMGB1P46", + "initial_sample_size": "22,528 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 53, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr3:49232728", + "strongest_snp_risk_allele": "chr3:49232728-A", + "or_or_beta": "0.0354", + "ci_text": "[0.021-0.05] unit decrease", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 54, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr1:176465969", + "strongest_snp_risk_allele": "chr1:176465969-A", + "or_or_beta": "0.0408", + "ci_text": "[0.024-0.057] unit decrease", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 55, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs5933091", + "strongest_snp_risk_allele": "rs5933091-?", + "or_or_beta": "1.13", + "ci_text": "[1.07-1.2]", + "p_value": "9E-6", + "pvalue_mlog": "5.045757490560675", + "mapped_gene": "AGKP2 - RAP2C-AS1", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 56, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs1903068", + "strongest_snp_risk_allele": "rs1903068-A", + "or_or_beta": "1.22", + "ci_text": "[1.16-1.29]", + "p_value": "5E-14", + "pvalue_mlog": "13.301029995663981", + "mapped_gene": "KDR - RN7SL822P", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 57, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10917151", + "strongest_snp_risk_allele": "rs10917151-A", + "or_or_beta": "1.23", + "ci_text": "[1.16-1.31]", + "p_value": "5E-11", + "pvalue_mlog": "10.301029995663981", + "mapped_gene": "CDC42", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 58, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs55909142", + "strongest_snp_risk_allele": "rs55909142-C", + "or_or_beta": "1.14", + "ci_text": "[1.09-1.2]", + "p_value": "1E-7", + "pvalue_mlog": "7.0", + "mapped_gene": "ZNF619P1 - HMGN1P19", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 59, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10860864", + "strongest_snp_risk_allele": "rs10860864-C", + "or_or_beta": "1.17", + "ci_text": "[1.1-1.25]", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": "LINC02456, IGF1", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 60, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs3858429", + "strongest_snp_risk_allele": "rs3858429-C", + "or_or_beta": "1.23", + "ci_text": "[1.15-1.32]", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "ARL14EP-DT", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 61, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs12320196", + "strongest_snp_risk_allele": "rs12320196-G", + "or_or_beta": "1.14", + "ci_text": "[1.09-1.2]", + "p_value": "7E-8", + "pvalue_mlog": "7.154901959985743", + "mapped_gene": "VEZT", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 62, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs1451383", + "strongest_snp_risk_allele": "rs1451383-G", + "or_or_beta": "1.19", + "ci_text": "[1.12-1.26]", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "LINC03007 - MIR148A", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 63, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs6456259", + "strongest_snp_risk_allele": "rs6456259-G", + "or_or_beta": "1.22", + "ci_text": "[1.14-1.3]", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "LNC-LBCS", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 64, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs71575922", + "strongest_snp_risk_allele": "rs71575922-G", + "or_or_beta": "1.3", + "ci_text": "[1.22-1.38]", + "p_value": "9E-16", + "pvalue_mlog": "15.045757490560675", + "mapped_gene": "SYNE1", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 65, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs2040445", + "strongest_snp_risk_allele": "rs2040445-G", + "or_or_beta": "1.53", + "ci_text": "[1.28-1.83]", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": "NME7, ATP1B1", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 66, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs11674184", + "strongest_snp_risk_allele": "rs11674184-T", + "or_or_beta": "1.16", + "ci_text": "[1.1-1.22]", + "p_value": "6E-9", + "pvalue_mlog": "8.221848749616356", + "mapped_gene": "GREB1", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 67, + "study_accession": "GCST90258639", + "disease_trait": "Endometriosis (stage 3 or 4)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10122243", + "strongest_snp_risk_allele": "rs10122243-T", + "or_or_beta": "1.2", + "ci_text": "[1.14-1.26]", + "p_value": "1E-13", + "pvalue_mlog": "13.0", + "mapped_gene": "CDKN2B-AS1", + "initial_sample_size": "4,045 European ancestry cases, 379,890 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 68, + "study_accession": "GCST90258641", + "disease_trait": "Endometriosis-associated infertility", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10917151", + "strongest_snp_risk_allele": "rs10917151-A", + "or_or_beta": "1.21", + "ci_text": "[1.13-1.31]", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": "CDC42", + "initial_sample_size": "3,060 European ancestry cases, 242,555 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 69, + "study_accession": "GCST90258641", + "disease_trait": "Endometriosis-associated infertility", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10122243", + "strongest_snp_risk_allele": "rs10122243-T", + "or_or_beta": "1.16", + "ci_text": "[1.1-1.23]", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": "CDKN2B-AS1", + "initial_sample_size": "3,060 European ancestry cases, 242,555 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 70, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs7003680", + "strongest_snp_risk_allele": "rs7003680-?", + "or_or_beta": "0.016313968", + "ci_text": "[0.01-0.022] unit increase", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": "CCDC26", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 71, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs72665317", + "strongest_snp_risk_allele": "rs72665317-?", + "or_or_beta": "0.04361255", + "ci_text": "[0.037-0.051] unit decrease", + "p_value": "5E-34", + "pvalue_mlog": "33.30102999566398", + "mapped_gene": "CDC42-AS1", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 72, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs3858429", + "strongest_snp_risk_allele": "rs3858429-?", + "or_or_beta": "0.042681653", + "ci_text": "[0.036-0.05] unit decrease", + "p_value": "6E-32", + "pvalue_mlog": "31.221848749616356", + "mapped_gene": "ARL14EP-DT", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 73, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs11674184", + "strongest_snp_risk_allele": "rs11674184-?", + "or_or_beta": "0.028285103", + "ci_text": "[0.023-0.034] unit increase", + "p_value": "2E-25", + "pvalue_mlog": "24.69897000433602", + "mapped_gene": "GREB1", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 74, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs73236109", + "strongest_snp_risk_allele": "rs73236109-?", + "or_or_beta": "0.02891245", + "ci_text": "[0.023-0.034] unit decrease", + "p_value": "1E-24", + "pvalue_mlog": "24.0", + "mapped_gene": "KDR - RN7SL822P", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 75, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs12111427", + "strongest_snp_risk_allele": "rs12111427-?", + "or_or_beta": "0.032875035", + "ci_text": "[0.026-0.039] unit increase", + "p_value": "1E-22", + "pvalue_mlog": "22.0", + "mapped_gene": "SYNE1", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 76, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs7759516", + "strongest_snp_risk_allele": "rs7759516-?", + "or_or_beta": "0.031107102", + "ci_text": "[0.025-0.038] unit decrease", + "p_value": "2E-20", + "pvalue_mlog": "19.69897000433602", + "mapped_gene": "CCDC170", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 77, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs7098100", + "strongest_snp_risk_allele": "rs7098100-?", + "or_or_beta": "0.024345245", + "ci_text": "[0.019-0.03] unit increase", + "p_value": "1E-18", + "pvalue_mlog": "18.0", + "mapped_gene": "MLLT10", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 78, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr23:133496946", + "strongest_snp_risk_allele": "chr23:133496946-A", + "or_or_beta": "0.0764", + "ci_text": "[0.045-0.108] unit increase", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 79, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr13:50498925", + "strongest_snp_risk_allele": "chr13:50498925-A", + "or_or_beta": "0.0441", + "ci_text": "[0.025-0.064] unit increase", + "p_value": "8E-6", + "pvalue_mlog": "5.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 80, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:67747535", + "strongest_snp_risk_allele": "chr2:67747535-A", + "or_or_beta": "0.0337", + "ci_text": "[0.02-0.048] unit decrease", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 81, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr20:31102309", + "strongest_snp_risk_allele": "chr20:31102309-A", + "or_or_beta": "0.0368", + "ci_text": "[0.021-0.053] unit increase", + "p_value": "9E-6", + "pvalue_mlog": "5.045757490560675", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 82, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr3:71513336", + "strongest_snp_risk_allele": "chr3:71513336-A", + "or_or_beta": "0.0332", + "ci_text": "[0.019-0.048] unit increase", + "p_value": "1E-5", + "pvalue_mlog": "5.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 83, + "study_accession": "GCST007841", + "disease_trait": "Height", + "study": "Leveraging Polygenic Functional Enrichment to Improve GWAS Power.", + "snps": "rs28929474", + "strongest_snp_risk_allele": "rs28929474-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "3E-120", + "pvalue_mlog": "119.52287874528034", + "mapped_gene": "SERPINA1", + "initial_sample_size": "approximately 458,000 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 84, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr1:88407688", + "strongest_snp_risk_allele": "chr1:88407688-A", + "or_or_beta": "0.0376", + "ci_text": "[0.021-0.054] unit decrease", + "p_value": "1E-5", + "pvalue_mlog": "5.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 85, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr1:176570761", + "strongest_snp_risk_allele": "chr1:176570761-A", + "or_or_beta": "0.0367", + "ci_text": "[0.02-0.053] unit decrease", + "p_value": "1E-5", + "pvalue_mlog": "5.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 86, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs55909142", + "strongest_snp_risk_allele": "rs55909142-C", + "or_or_beta": "1.04", + "ci_text": "[1.03-1.06]", + "p_value": "9E-9", + "pvalue_mlog": "8.045757490560675", + "mapped_gene": "ZNF619P1 - HMGN1P19", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 87, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs66683298", + "strongest_snp_risk_allele": "rs66683298-C", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.06]", + "p_value": "7E-10", + "pvalue_mlog": "9.154901959985743", + "mapped_gene": "SKAP1, SKAP1-AS1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 88, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs2421985", + "strongest_snp_risk_allele": "rs2421985-C", + "or_or_beta": "1.05", + "ci_text": "[1.04-1.07]", + "p_value": "7E-14", + "pvalue_mlog": "13.154901959985743", + "mapped_gene": "DNM3", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 89, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr10:90296467", + "strongest_snp_risk_allele": "chr10:90296467-A", + "or_or_beta": "0.0345", + "ci_text": "[0.02-0.049] unit decrease", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 90, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:9668601", + "strongest_snp_risk_allele": "chr8:9668601-A", + "or_or_beta": "0.0372", + "ci_text": "[0.021-0.053] unit decrease", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 91, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr23:133157274", + "strongest_snp_risk_allele": "chr23:133157274-A", + "or_or_beta": "0.105", + "ci_text": "[0.06-0.15] unit increase", + "p_value": "5E-6", + "pvalue_mlog": "5.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 92, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr21:36469136", + "strongest_snp_risk_allele": "chr21:36469136-A", + "or_or_beta": "0.0324", + "ci_text": "[0.018-0.046] unit decrease", + "p_value": "5E-6", + "pvalue_mlog": "5.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 93, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:232560984", + "strongest_snp_risk_allele": "chr2:232560984-A", + "or_or_beta": "0.0397", + "ci_text": "[0.023-0.057] unit increase", + "p_value": "5E-6", + "pvalue_mlog": "5.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 94, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs3858429", + "strongest_snp_risk_allele": "rs3858429-C", + "or_or_beta": "1.12", + "ci_text": "[1.1-1.14]", + "p_value": "2E-30", + "pvalue_mlog": "29.69897000433602", + "mapped_gene": "ARL14EP-DT", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 95, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:120913331", + "strongest_snp_risk_allele": "chr7:120913331-C", + "or_or_beta": "0.2012", + "ci_text": "[0.13-0.27] unit decrease", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 96, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11210325", + "strongest_snp_risk_allele": "rs11210325-C", + "or_or_beta": "0.0098", + "ci_text": "[0.0065-0.0131] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "LINC02238", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 97, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr12:102922986", + "strongest_snp_risk_allele": "chr12:102922986-C", + "or_or_beta": "0.046", + "ci_text": "[0.029-0.063] unit decrease", + "p_value": "1E-7", + "pvalue_mlog": "7.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 98, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:9511654", + "strongest_snp_risk_allele": "chr8:9511654-A", + "or_or_beta": "0.033", + "ci_text": "[0.019-0.047] unit decrease", + "p_value": "6E-6", + "pvalue_mlog": "5.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 99, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:46298647", + "strongest_snp_risk_allele": "chr7:46298647-A", + "or_or_beta": "0.0639", + "ci_text": "[0.036-0.092] unit decrease", + "p_value": "7E-6", + "pvalue_mlog": "5.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 100, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr20:30696392", + "strongest_snp_risk_allele": "chr20:30696392-C", + "or_or_beta": "0.0345", + "ci_text": "[0.02-0.049] unit increase", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 101, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:932630", + "strongest_snp_risk_allele": "chr7:932630-C", + "or_or_beta": "0.0416", + "ci_text": "[0.024-0.059] unit increase", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 102, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr17:45257164", + "strongest_snp_risk_allele": "chr17:45257164-A", + "or_or_beta": "0.1719", + "ci_text": "[0.097-0.247] unit increase", + "p_value": "7E-6", + "pvalue_mlog": "5.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 103, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:136151199", + "strongest_snp_risk_allele": "chr6:136151199-A", + "or_or_beta": "0.0579", + "ci_text": "[0.033-0.083] unit increase", + "p_value": "7E-6", + "pvalue_mlog": "5.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 104, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr23:131626317", + "strongest_snp_risk_allele": "chr23:131626317-A", + "or_or_beta": "0.0511", + "ci_text": "[0.029-0.073] unit increase", + "p_value": "7E-6", + "pvalue_mlog": "5.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 105, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:11825042", + "strongest_snp_risk_allele": "chr7:11825042-A", + "or_or_beta": "0.038", + "ci_text": "[0.021-0.055] unit increase", + "p_value": "8E-6", + "pvalue_mlog": "5.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 106, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:100623848", + "strongest_snp_risk_allele": "chr8:100623848-A", + "or_or_beta": "0.0536", + "ci_text": "[0.03-0.077] unit decrease", + "p_value": "8E-6", + "pvalue_mlog": "5.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 107, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs56090796", + "strongest_snp_risk_allele": "rs56090796-A", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.06]", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "RERG", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 108, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs2946160", + "strongest_snp_risk_allele": "rs2946160-A", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.06]", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "LINC02227", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 109, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs507666", + "strongest_snp_risk_allele": "rs507666-A", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.07]", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "ABO", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 110, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs13441059", + "strongest_snp_risk_allele": "rs13441059-A", + "or_or_beta": "1.05", + "ci_text": "[1.04-1.07]", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "TEX11", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 111, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10828249", + "strongest_snp_risk_allele": "rs10828249-A", + "or_or_beta": "1.05", + "ci_text": "[1.04-1.07]", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "MLLT10", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 112, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10090060", + "strongest_snp_risk_allele": "rs10090060-A", + "or_or_beta": "1.06", + "ci_text": "[1.04-1.07]", + "p_value": "7E-15", + "pvalue_mlog": "14.154901959985743", + "mapped_gene": "GDAP1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 113, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs11756073", + "strongest_snp_risk_allele": "rs11756073-A", + "or_or_beta": "1.06", + "ci_text": "[1.04-1.08]", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "LINC00574 - RPL12P23", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 114, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs2967684", + "strongest_snp_risk_allele": "rs2967684-A", + "or_or_beta": "1.06", + "ci_text": "[1.04-1.08]", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "NFILZ", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 115, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs1903068", + "strongest_snp_risk_allele": "rs1903068-A", + "or_or_beta": "1.08", + "ci_text": "[1.06-1.1]", + "p_value": "2E-24", + "pvalue_mlog": "23.69897000433602", + "mapped_gene": "KDR - RN7SL822P", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 116, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs73241342", + "strongest_snp_risk_allele": "rs73241342-A", + "or_or_beta": "1.14", + "ci_text": "[1.1-1.19]", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "LINC00629", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 117, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs1430787", + "strongest_snp_risk_allele": "rs1430787-A", + "or_or_beta": "1.14", + "ci_text": "[1.12-1.16]", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LINC02831 - LINC01812", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 118, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10917151", + "strongest_snp_risk_allele": "rs10917151-A", + "or_or_beta": "1.14", + "ci_text": "[1.12-1.16]", + "p_value": "5E-44", + "pvalue_mlog": "43.30102999566398", + "mapped_gene": "CDC42", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 119, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr23:69741513", + "strongest_snp_risk_allele": "chr23:69741513-A", + "or_or_beta": "0.0425", + "ci_text": "[0.027-0.058] unit increase", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 120, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:10903475", + "strongest_snp_risk_allele": "chr8:10903475-A", + "or_or_beta": "0.0392", + "ci_text": "[0.025-0.053] unit decrease", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 121, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:34151395", + "strongest_snp_risk_allele": "chr6:34151395-A", + "or_or_beta": "0.0902", + "ci_text": "[0.058-0.123] unit decrease", + "p_value": "6E-8", + "pvalue_mlog": "7.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 122, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:74459265", + "strongest_snp_risk_allele": "chr6:74459265-A", + "or_or_beta": "0.0384", + "ci_text": "[0.024-0.052] unit increase", + "p_value": "6E-8", + "pvalue_mlog": "7.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 123, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:75053837", + "strongest_snp_risk_allele": "chr6:75053837-A", + "or_or_beta": "0.0384", + "ci_text": "[0.024-0.052] unit decrease", + "p_value": "6E-8", + "pvalue_mlog": "7.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 124, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr10:90082746", + "strongest_snp_risk_allele": "chr10:90082746-A", + "or_or_beta": "0.0383", + "ci_text": "[0.024-0.052] unit increase", + "p_value": "7E-8", + "pvalue_mlog": "7.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 125, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:116606177", + "strongest_snp_risk_allele": "chr8:116606177-A", + "or_or_beta": "0.0388", + "ci_text": "[0.025-0.053] unit decrease", + "p_value": "7E-8", + "pvalue_mlog": "7.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 126, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr23:70333028", + "strongest_snp_risk_allele": "chr23:70333028-A", + "or_or_beta": "0.0396", + "ci_text": "[0.025-0.054] unit decrease", + "p_value": "9E-8", + "pvalue_mlog": "7.045757490560675", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 127, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr12:26438189", + "strongest_snp_risk_allele": "chr12:26438189-A", + "or_or_beta": "0.0449", + "ci_text": "[0.028-0.061] unit decrease", + "p_value": "9E-8", + "pvalue_mlog": "7.045757490560675", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 128, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr11:30154477", + "strongest_snp_risk_allele": "chr11:30154477-A", + "or_or_beta": "0.0383", + "ci_text": "[0.024-0.052] unit increase", + "p_value": "1E-7", + "pvalue_mlog": "7.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 129, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr17:46127756", + "strongest_snp_risk_allele": "chr17:46127756-A", + "or_or_beta": "0.05", + "ci_text": "[0.032-0.068] unit decrease", + "p_value": "1E-7", + "pvalue_mlog": "7.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 130, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:23484228", + "strongest_snp_risk_allele": "chr7:23484228-A", + "or_or_beta": "0.0559", + "ci_text": "[0.035-0.077] unit decrease", + "p_value": "1E-7", + "pvalue_mlog": "7.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 131, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr1:171939641", + "strongest_snp_risk_allele": "chr1:171939641-A", + "or_or_beta": "0.0469", + "ci_text": "[0.029-0.064] unit decrease", + "p_value": "1E-7", + "pvalue_mlog": "7.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 132, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:10620339", + "strongest_snp_risk_allele": "chr8:10620339-C", + "or_or_beta": "0.0334", + "ci_text": "[0.019-0.048] unit decrease", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 133, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:188353663", + "strongest_snp_risk_allele": "chr2:188353663-T", + "or_or_beta": "0.04", + "ci_text": "[0.025-0.055] unit decrease", + "p_value": "1E-7", + "pvalue_mlog": "7.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 134, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr5:157895049", + "strongest_snp_risk_allele": "chr5:157895049-T", + "or_or_beta": "0.042", + "ci_text": "[0.026-0.058] unit decrease", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 135, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:74899865", + "strongest_snp_risk_allele": "chr6:74899865-T", + "or_or_beta": "0.0382", + "ci_text": "[0.024-0.053] unit increase", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 136, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:116471025", + "strongest_snp_risk_allele": "chr8:116471025-T", + "or_or_beta": "0.037", + "ci_text": "[0.023-0.051] unit increase", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 137, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr17:20127018", + "strongest_snp_risk_allele": "chr17:20127018-T", + "or_or_beta": "0.0379", + "ci_text": "[0.024-0.052] unit increase", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 138, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs57281976", + "strongest_snp_risk_allele": "rs57281976-G", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.07]", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "RIN3", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 139, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:188243940", + "strongest_snp_risk_allele": "chr2:188243940-T", + "or_or_beta": "0.0384", + "ci_text": "[0.024-0.053] unit decrease", + "p_value": "3E-7", + "pvalue_mlog": "6.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 140, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs12030576", + "strongest_snp_risk_allele": "rs12030576-G", + "or_or_beta": "1.06", + "ci_text": "[1.04-1.07]", + "p_value": "3E-13", + "pvalue_mlog": "12.522878745280337", + "mapped_gene": "NGF-AS1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 141, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs1451383", + "strongest_snp_risk_allele": "rs1451383-G", + "or_or_beta": "1.06", + "ci_text": "[1.04-1.07]", + "p_value": "9E-12", + "pvalue_mlog": "11.045757490560675", + "mapped_gene": "LINC03007 - MIR148A", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 142, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs6456259", + "strongest_snp_risk_allele": "rs6456259-G", + "or_or_beta": "1.08", + "ci_text": "[1.06-1.1]", + "p_value": "4E-17", + "pvalue_mlog": "16.397940008672037", + "mapped_gene": "LNC-LBCS", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 143, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:11433780", + "strongest_snp_risk_allele": "chr8:11433780-T", + "or_or_beta": "0.0345", + "ci_text": "[0.021-0.048] unit increase", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 144, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs2040445", + "strongest_snp_risk_allele": "rs2040445-G", + "or_or_beta": "1.17", + "ci_text": "[1.12-1.23]", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "NME7, ATP1B1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 145, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs7907732", + "strongest_snp_risk_allele": "rs7907732-T", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.06]", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "RNLS", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 146, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs6435157", + "strongest_snp_risk_allele": "rs6435157-T", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.06]", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": "BMPR2 - MTCO1P17", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 147, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:25424565", + "strongest_snp_risk_allele": "chr7:25424565-T", + "or_or_beta": "0.0374", + "ci_text": "[0.022-0.053] unit decrease", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 148, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs5933091", + "strongest_snp_risk_allele": "rs5933091-T", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.07]", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "AGKP2 - RAP2C-AS1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 149, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs12549438", + "strongest_snp_risk_allele": "rs12549438-T", + "or_or_beta": "1.05", + "ci_text": "[1.04-1.07]", + "p_value": "8E-10", + "pvalue_mlog": "9.096910013008056", + "mapped_gene": "VPS13B", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 150, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:25800508", + "strongest_snp_risk_allele": "chr7:25800508-T", + "or_or_beta": "0.0358", + "ci_text": "[0.021-0.051] unit increase", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 151, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:94724450", + "strongest_snp_risk_allele": "chr7:94724450-T", + "or_or_beta": "0.0358", + "ci_text": "[0.021-0.051] unit increase", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 152, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr3:143537540", + "strongest_snp_risk_allele": "chr3:143537540-T", + "or_or_beta": "0.1116", + "ci_text": "[0.065-0.158] unit decrease", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 153, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:9974858", + "strongest_snp_risk_allele": "chr8:9974858-T", + "or_or_beta": "0.0338", + "ci_text": "[0.02-0.048] unit decrease", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 154, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr22:40542688", + "strongest_snp_risk_allele": "chr22:40542688-T", + "or_or_beta": "0.0338", + "ci_text": "[0.02-0.048] unit increase", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 155, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr12:121444673", + "strongest_snp_risk_allele": "chr12:121444673-T", + "or_or_beta": "0.0355", + "ci_text": "[0.021-0.05] unit decrease", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 156, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr13:47128266", + "strongest_snp_risk_allele": "chr13:47128266-T", + "or_or_beta": "0.0406", + "ci_text": "[0.024-0.058] unit increase", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 157, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr5:82040476", + "strongest_snp_risk_allele": "chr5:82040476-A", + "or_or_beta": "0.0399", + "ci_text": "[0.025-0.055] unit decrease", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 158, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:9406602", + "strongest_snp_risk_allele": "chr8:9406602-A", + "or_or_beta": "0.038", + "ci_text": "[0.024-0.052] unit decrease", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 159, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr11:95243905", + "strongest_snp_risk_allele": "chr11:95243905-A", + "or_or_beta": "0.1449", + "ci_text": "[0.09-0.2] unit increase", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 160, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr17:20291257", + "strongest_snp_risk_allele": "chr17:20291257-A", + "or_or_beta": "0.0394", + "ci_text": "[0.025-0.054] unit decrease", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 161, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:29836352", + "strongest_snp_risk_allele": "chr6:29836352-A", + "or_or_beta": "0.0596", + "ci_text": "[0.037-0.082] unit decrease", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 162, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:203554324", + "strongest_snp_risk_allele": "chr2:203554324-A", + "or_or_beta": "0.0486", + "ci_text": "[0.03-0.067] unit increase", + "p_value": "2E-7", + "pvalue_mlog": "6.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 163, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr1:22262225", + "strongest_snp_risk_allele": "chr1:22262225-A", + "or_or_beta": "0.0576", + "ci_text": "[0.036-0.08] unit decrease", + "p_value": "3E-7", + "pvalue_mlog": "6.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 164, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr22:33103918", + "strongest_snp_risk_allele": "chr22:33103918-A", + "or_or_beta": "0.0617", + "ci_text": "[0.038-0.085] unit decrease", + "p_value": "3E-7", + "pvalue_mlog": "6.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 165, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr9:119258919", + "strongest_snp_risk_allele": "chr9:119258919-A", + "or_or_beta": "0.0451", + "ci_text": "[0.028-0.062] unit decrease", + "p_value": "3E-7", + "pvalue_mlog": "6.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 166, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:127456122", + "strongest_snp_risk_allele": "chr6:127456122-A", + "or_or_beta": "0.0363", + "ci_text": "[0.022-0.05] unit decrease", + "p_value": "3E-7", + "pvalue_mlog": "6.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 167, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs12030576", + "strongest_snp_risk_allele": "rs12030576-?", + "or_or_beta": "0.022952303", + "ci_text": "[0.018-0.028] unit decrease", + "p_value": "1E-16", + "pvalue_mlog": "16.0", + "mapped_gene": "NGF-AS1", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 168, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:134552202", + "strongest_snp_risk_allele": "chr7:134552202-A", + "or_or_beta": "0.0392", + "ci_text": "[0.024-0.054] unit decrease", + "p_value": "4E-7", + "pvalue_mlog": "6.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 169, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs12441483", + "strongest_snp_risk_allele": "rs12441483-?", + "or_or_beta": "0.02057132", + "ci_text": "[0.015-0.026] unit decrease", + "p_value": "8E-15", + "pvalue_mlog": "14.096910013008056", + "mapped_gene": "SRP14-DT", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 170, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr1:22686493", + "strongest_snp_risk_allele": "chr1:22686493-A", + "or_or_beta": "0.0511", + "ci_text": "[0.031-0.071] unit increase", + "p_value": "5E-7", + "pvalue_mlog": "6.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 171, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs1352889", + "strongest_snp_risk_allele": "rs1352889-?", + "or_or_beta": "0.026005208", + "ci_text": "[0.019-0.033] unit increase", + "p_value": "9E-14", + "pvalue_mlog": "13.045757490560675", + "mapped_gene": "BSN", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 172, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:75381941", + "strongest_snp_risk_allele": "chr8:75381941-A", + "or_or_beta": "0.0394", + "ci_text": "[0.024-0.055] unit decrease", + "p_value": "6E-7", + "pvalue_mlog": "6.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 173, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:10758496", + "strongest_snp_risk_allele": "chr8:10758496-A", + "or_or_beta": "0.0361", + "ci_text": "[0.022-0.05] unit increase", + "p_value": "8E-7", + "pvalue_mlog": "6.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 174, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:188143075", + "strongest_snp_risk_allele": "chr2:188143075-A", + "or_or_beta": "0.037", + "ci_text": "[0.022-0.052] unit increase", + "p_value": "8E-7", + "pvalue_mlog": "6.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 175, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs2421985", + "strongest_snp_risk_allele": "rs2421985-?", + "or_or_beta": "0.017984191", + "ci_text": "[0.013-0.023] unit decrease", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "DNM3", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 176, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr5:142162633", + "strongest_snp_risk_allele": "chr5:142162633-A", + "or_or_beta": "0.0398", + "ci_text": "[0.024-0.056] unit increase", + "p_value": "9E-7", + "pvalue_mlog": "6.045757490560675", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 177, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr17:46396419", + "strongest_snp_risk_allele": "chr17:46396419-A", + "or_or_beta": "0.0452", + "ci_text": "[0.027-0.063] unit decrease", + "p_value": "9E-7", + "pvalue_mlog": "6.045757490560675", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 178, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs1451383", + "strongest_snp_risk_allele": "rs1451383-?", + "or_or_beta": "0.019940123", + "ci_text": "[0.014-0.026] unit decrease", + "p_value": "7E-11", + "pvalue_mlog": "10.154901959985743", + "mapped_gene": "LINC03007 - MIR148A", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 179, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr10:117532430", + "strongest_snp_risk_allele": "chr10:117532430-A", + "or_or_beta": "0.0493", + "ci_text": "[0.03-0.069] unit decrease", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 180, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs11126134", + "strongest_snp_risk_allele": "rs11126134-?", + "or_or_beta": "0.020999163", + "ci_text": "[0.014-0.028] unit increase", + "p_value": "7E-10", + "pvalue_mlog": "9.154901959985743", + "mapped_gene": "LINC02831", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 181, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr1:214525603", + "strongest_snp_risk_allele": "chr1:214525603-A", + "or_or_beta": "0.0417", + "ci_text": "[0.025-0.059] unit decrease", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 182, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr10:96423125", + "strongest_snp_risk_allele": "chr10:96423125-T", + "or_or_beta": "0.04", + "ci_text": "[0.023-0.057] unit decrease", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 183, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:40915059", + "strongest_snp_risk_allele": "chr8:40915059-T", + "or_or_beta": "0.0371", + "ci_text": "[0.021-0.053] unit decrease", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 184, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr3:55228586", + "strongest_snp_risk_allele": "chr3:55228586-T", + "or_or_beta": "0.0329", + "ci_text": "[0.019-0.047] unit increase", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 185, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr4:95989189", + "strongest_snp_risk_allele": "chr4:95989189-T", + "or_or_beta": "0.0328", + "ci_text": "[0.019-0.047] unit increase", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 186, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr11:86772254", + "strongest_snp_risk_allele": "chr11:86772254-T", + "or_or_beta": "0.0572", + "ci_text": "[0.033-0.082] unit decrease", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 187, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr10:76317250", + "strongest_snp_risk_allele": "chr10:76317250-T", + "or_or_beta": "0.0424", + "ci_text": "[0.024-0.06] unit increase", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 188, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr13:100525909", + "strongest_snp_risk_allele": "chr13:100525909-T", + "or_or_beta": "0.0387", + "ci_text": "[0.022-0.055] unit decrease", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 189, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr17:64198640", + "strongest_snp_risk_allele": "chr17:64198640-T", + "or_or_beta": "0.064", + "ci_text": "[0.037-0.091] unit increase", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 190, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:100508385", + "strongest_snp_risk_allele": "chr2:100508385-T", + "or_or_beta": "0.033", + "ci_text": "[0.019-0.047] unit increase", + "p_value": "5E-6", + "pvalue_mlog": "5.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 191, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr4:103780496", + "strongest_snp_risk_allele": "chr4:103780496-T", + "or_or_beta": "0.0325", + "ci_text": "[0.019-0.046] unit increase", + "p_value": "5E-6", + "pvalue_mlog": "5.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 192, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr4:175440024", + "strongest_snp_risk_allele": "chr4:175440024-T", + "or_or_beta": "0.0372", + "ci_text": "[0.021-0.053] unit increase", + "p_value": "6E-6", + "pvalue_mlog": "5.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 193, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr10:76515957", + "strongest_snp_risk_allele": "chr10:76515957-T", + "or_or_beta": "0.1053", + "ci_text": "[0.06-0.151] unit decrease", + "p_value": "6E-6", + "pvalue_mlog": "5.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 194, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:9872810", + "strongest_snp_risk_allele": "chr8:9872810-T", + "or_or_beta": "0.0325", + "ci_text": "[0.018-0.047] unit decrease", + "p_value": "6E-6", + "pvalue_mlog": "5.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 195, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr19:17359535", + "strongest_snp_risk_allele": "chr19:17359535-T", + "or_or_beta": "0.0424", + "ci_text": "[0.024-0.061] unit decrease", + "p_value": "6E-6", + "pvalue_mlog": "5.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 196, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr3:49582994", + "strongest_snp_risk_allele": "chr3:49582994-T", + "or_or_beta": "0.036", + "ci_text": "[0.02-0.052] unit increase", + "p_value": "7E-6", + "pvalue_mlog": "5.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 197, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr4:55842653", + "strongest_snp_risk_allele": "chr4:55842653-T", + "or_or_beta": "0.0342", + "ci_text": "[0.019-0.049] unit decrease", + "p_value": "7E-6", + "pvalue_mlog": "5.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 198, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:135739077", + "strongest_snp_risk_allele": "chr8:135739077-T", + "or_or_beta": "0.0328", + "ci_text": "[0.018-0.047] unit increase", + "p_value": "7E-6", + "pvalue_mlog": "5.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 199, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:111988259", + "strongest_snp_risk_allele": "chr6:111988259-T", + "or_or_beta": "0.0568", + "ci_text": "[0.032-0.082] unit decrease", + "p_value": "8E-6", + "pvalue_mlog": "5.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 200, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:8222480", + "strongest_snp_risk_allele": "chr8:8222480-T", + "or_or_beta": "0.0322", + "ci_text": "[0.018-0.046] unit decrease", + "p_value": "8E-6", + "pvalue_mlog": "5.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 201, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:34258571", + "strongest_snp_risk_allele": "chr6:34258571-T", + "or_or_beta": "0.0892", + "ci_text": "[0.05-0.128] unit decrease", + "p_value": "8E-6", + "pvalue_mlog": "5.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 202, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr9:100310501", + "strongest_snp_risk_allele": "chr9:100310501-T", + "or_or_beta": "0.0328", + "ci_text": "[0.018-0.047] unit increase", + "p_value": "9E-6", + "pvalue_mlog": "5.045757490560675", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 203, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:213964212", + "strongest_snp_risk_allele": "chr2:213964212-T", + "or_or_beta": "0.0713", + "ci_text": "[0.04-0.103] unit increase", + "p_value": "9E-6", + "pvalue_mlog": "5.045757490560675", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 204, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs3803042", + "strongest_snp_risk_allele": "rs3803042-A", + "or_or_beta": "1.04", + "ci_text": "[1.03-1.06]", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "HOXC6, HOXC-AS2", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 205, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs2510770", + "strongest_snp_risk_allele": "rs2510770-A", + "or_or_beta": "1.04", + "ci_text": "[1.03-1.06]", + "p_value": "8E-9", + "pvalue_mlog": "8.096910013008056", + "mapped_gene": "PDLIM5", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 206, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs3783521", + "strongest_snp_risk_allele": "rs3783521-A", + "or_or_beta": "1.04", + "ci_text": "[1.03-1.06]", + "p_value": "6E-8", + "pvalue_mlog": "7.221848749616356", + "mapped_gene": "IL1A - IL1B", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 207, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:94592691", + "strongest_snp_risk_allele": "chr7:94592691-T", + "or_or_beta": "0.057", + "ci_text": "[0.036-0.078] unit decrease", + "p_value": "1E-7", + "pvalue_mlog": "7.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 208, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr17:35191961", + "strongest_snp_risk_allele": "chr17:35191961-C", + "or_or_beta": "0.0346", + "ci_text": "[0.02-0.049] unit decrease", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 209, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:31323065", + "strongest_snp_risk_allele": "chr6:31323065-C", + "or_or_beta": "0.0518", + "ci_text": "[0.029-0.074] unit increase", + "p_value": "6E-6", + "pvalue_mlog": "5.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 210, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr5:87985295", + "strongest_snp_risk_allele": "chr5:87985295-C", + "or_or_beta": "0.0324", + "ci_text": "[0.018-0.047] unit decrease", + "p_value": "7E-6", + "pvalue_mlog": "5.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 211, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs143703694", + "strongest_snp_risk_allele": "rs143703694-G", + "or_or_beta": "0.0298", + "ci_text": "[0.021-0.039] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "ENSA - GOLPH3L", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 212, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs2226158", + "strongest_snp_risk_allele": "rs2226158-G", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.06]", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "LINC02523, HEY2-AS1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 213, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs6970537", + "strongest_snp_risk_allele": "rs6970537-G", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.06]", + "p_value": "7E-11", + "pvalue_mlog": "10.154901959985743", + "mapped_gene": "HOXA10", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 214, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs17053711", + "strongest_snp_risk_allele": "rs17053711-G", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.06]", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "KCTD9", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 215, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:11309192", + "strongest_snp_risk_allele": "chr8:11309192-T", + "or_or_beta": "0.0369", + "ci_text": "[0.023-0.051] unit increase", + "p_value": "3E-7", + "pvalue_mlog": "6.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 216, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs12320196", + "strongest_snp_risk_allele": "rs12320196-G", + "or_or_beta": "1.05", + "ci_text": "[1.04-1.07]", + "p_value": "7E-14", + "pvalue_mlog": "13.154901959985743", + "mapped_gene": "VEZT", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 217, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr10:21657474", + "strongest_snp_risk_allele": "chr10:21657474-T", + "or_or_beta": "0.0511", + "ci_text": "[0.031-0.071] unit decrease", + "p_value": "5E-7", + "pvalue_mlog": "6.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 218, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:98534734", + "strongest_snp_risk_allele": "chr2:98534734-T", + "or_or_beta": "0.0681", + "ci_text": "[0.041-0.095] unit increase", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 219, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr10:22083051", + "strongest_snp_risk_allele": "chr10:22083051-T", + "or_or_beta": "0.0371", + "ci_text": "[0.022-0.052] unit increase", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 220, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs71575922", + "strongest_snp_risk_allele": "rs71575922-G", + "or_or_beta": "1.12", + "ci_text": "[1.1-1.14]", + "p_value": "1E-31", + "pvalue_mlog": "31.0", + "mapped_gene": "SYNE1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 221, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:23586177", + "strongest_snp_risk_allele": "chr7:23586177-T", + "or_or_beta": "0.0492", + "ci_text": "[0.029-0.069] unit decrease", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 222, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:98380681", + "strongest_snp_risk_allele": "chr2:98380681-T", + "or_or_beta": "0.0634", + "ci_text": "[0.038-0.089] unit decrease", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 223, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10983311", + "strongest_snp_risk_allele": "rs10983311-T", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.07]", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "ASTN2", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 224, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12759907", + "strongest_snp_risk_allele": "rs12759907-G", + "or_or_beta": "0.0124", + "ci_text": "[0.0083-0.0165] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "PRRC2C", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 225, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs1352889", + "strongest_snp_risk_allele": "rs1352889-T", + "or_or_beta": "1.05", + "ci_text": "[1.03-1.07]", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "BSN", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 226, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:11033976", + "strongest_snp_risk_allele": "chr8:11033976-T", + "or_or_beta": "0.0336", + "ci_text": "[0.02-0.048] unit increase", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 227, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10122243", + "strongest_snp_risk_allele": "rs10122243-T", + "or_or_beta": "1.06", + "ci_text": "[1.05-1.08]", + "p_value": "1E-17", + "pvalue_mlog": "17.0", + "mapped_gene": "CDKN2B-AS1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 228, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs11674184", + "strongest_snp_risk_allele": "rs11674184-T", + "or_or_beta": "1.08", + "ci_text": "[1.07-1.1]", + "p_value": "3E-26", + "pvalue_mlog": "25.522878745280337", + "mapped_gene": "GREB1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 229, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:203258192", + "strongest_snp_risk_allele": "chr2:203258192-T", + "or_or_beta": "0.0462", + "ci_text": "[0.03-0.063] unit increase", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 230, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:74523247", + "strongest_snp_risk_allele": "chr6:74523247-T", + "or_or_beta": "0.0384", + "ci_text": "[0.024-0.052] unit increase", + "p_value": "6E-8", + "pvalue_mlog": "7.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 231, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr12:103123339", + "strongest_snp_risk_allele": "chr12:103123339-T", + "or_or_beta": "0.0911", + "ci_text": "[0.057-0.125] unit increase", + "p_value": "1E-7", + "pvalue_mlog": "7.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 232, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr6:170382923", + "strongest_snp_risk_allele": "chr6:170382923-A", + "or_or_beta": "0.0446", + "ci_text": "[0.025-0.064] unit decrease", + "p_value": "8E-6", + "pvalue_mlog": "5.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 233, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:27324036", + "strongest_snp_risk_allele": "chr2:27324036-A", + "or_or_beta": "0.0347", + "ci_text": "[0.02-0.049] unit increase", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 234, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:22894124", + "strongest_snp_risk_allele": "chr8:22894124-A", + "or_or_beta": "0.0324", + "ci_text": "[0.018-0.047] unit decrease", + "p_value": "9E-6", + "pvalue_mlog": "5.045757490560675", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 235, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:8673601", + "strongest_snp_risk_allele": "chr8:8673601-A", + "or_or_beta": "0.0336", + "ci_text": "[0.02-0.048] unit decrease", + "p_value": "2E-6", + "pvalue_mlog": "5.698970004336019", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 236, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr5:133829990", + "strongest_snp_risk_allele": "chr5:133829990-A", + "or_or_beta": "0.0339", + "ci_text": "[0.02-0.048] unit decrease", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 237, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr3:13722407", + "strongest_snp_risk_allele": "chr3:13722407-A", + "or_or_beta": "0.0332", + "ci_text": "[0.019-0.047] unit decrease", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 238, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr5:50332780", + "strongest_snp_risk_allele": "chr5:50332780-A", + "or_or_beta": "0.033", + "ci_text": "[0.019-0.047] unit increase", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 239, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr3:13722635", + "strongest_snp_risk_allele": "chr3:13722635-A", + "or_or_beta": "0.0329", + "ci_text": "[0.019-0.047] unit decrease", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 240, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr7:46487127", + "strongest_snp_risk_allele": "chr7:46487127-A", + "or_or_beta": "0.0546", + "ci_text": "[0.031-0.078] unit decrease", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 241, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr19:44153100", + "strongest_snp_risk_allele": "chr19:44153100-A", + "or_or_beta": "0.0456", + "ci_text": "[0.026-0.065] unit decrease", + "p_value": "4E-6", + "pvalue_mlog": "5.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 242, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs7924571", + "strongest_snp_risk_allele": "rs7924571-C", + "or_or_beta": "1.05", + "ci_text": "[1.04-1.07]", + "p_value": "6E-10", + "pvalue_mlog": "9.221848749616356", + "mapped_gene": "THEM7P - WT1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 243, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs12441483", + "strongest_snp_risk_allele": "rs12441483-C", + "or_or_beta": "1.05", + "ci_text": "[1.04-1.07]", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "SRP14-DT", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 244, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs4540228", + "strongest_snp_risk_allele": "rs4540228-C", + "or_or_beta": "1.05", + "ci_text": "[1.04-1.07]", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "CD109 - TXNP7", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 245, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10860864", + "strongest_snp_risk_allele": "rs10860864-C", + "or_or_beta": "1.06", + "ci_text": "[1.04-1.08]", + "p_value": "4E-10", + "pvalue_mlog": "9.397940008672037", + "mapped_gene": "LINC02456, IGF1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 246, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs7334326", + "strongest_snp_risk_allele": "rs7334326-C", + "or_or_beta": "1.06", + "ci_text": "[1.04-1.08]", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "DLEU1", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 247, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs7214750", + "strongest_snp_risk_allele": "rs7214750-C", + "or_or_beta": "1.09", + "ci_text": "[1.06-1.12]", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "CEP112", + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 248, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr3:50301584", + "strongest_snp_risk_allele": "chr3:50301584-A", + "or_or_beta": "0.0341", + "ci_text": "[0.019-0.049] unit decrease", + "p_value": "5E-6", + "pvalue_mlog": "5.301029995663981", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 249, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr10:96739382", + "strongest_snp_risk_allele": "chr10:96739382-A", + "or_or_beta": "0.0398", + "ci_text": "[0.023-0.057] unit increase", + "p_value": "6E-6", + "pvalue_mlog": "5.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 250, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr3:49898318", + "strongest_snp_risk_allele": "chr3:49898318-C", + "or_or_beta": "0.0454", + "ci_text": "[0.029-0.062] unit decrease", + "p_value": "1E-7", + "pvalue_mlog": "7.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 251, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr12:57450840", + "strongest_snp_risk_allele": "chr12:57450840-C", + "or_or_beta": "0.0642", + "ci_text": "[0.039-0.09] unit decrease", + "p_value": "8E-7", + "pvalue_mlog": "6.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 252, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:10096128", + "strongest_snp_risk_allele": "chr8:10096128-C", + "or_or_beta": "0.0385", + "ci_text": "[0.023-0.054] unit decrease", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 253, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr9:21974218", + "strongest_snp_risk_allele": "chr9:21974218-A", + "or_or_beta": "0.0333", + "ci_text": "[0.019-0.048] unit decrease", + "p_value": "7E-6", + "pvalue_mlog": "5.154901959985743", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 254, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:11619121", + "strongest_snp_risk_allele": "chr2:11619121-C", + "or_or_beta": "0.1442", + "ci_text": "[0.084-0.205] unit decrease", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 255, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs6456259", + "strongest_snp_risk_allele": "rs6456259-?", + "or_or_beta": "0.030561453", + "ci_text": "[0.024-0.038] unit decrease", + "p_value": "2E-17", + "pvalue_mlog": "16.69897000433602", + "mapped_gene": "LNC-LBCS", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 256, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr17:20013459", + "strongest_snp_risk_allele": "chr17:20013459-A", + "or_or_beta": "0.0383", + "ci_text": "[0.024-0.053] unit decrease", + "p_value": "3E-7", + "pvalue_mlog": "6.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 257, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs10122243", + "strongest_snp_risk_allele": "rs10122243-?", + "or_or_beta": "0.021706074", + "ci_text": "[0.016-0.027] unit increase", + "p_value": "8E-16", + "pvalue_mlog": "15.096910013008056", + "mapped_gene": "CDKN2B-AS1", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 258, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr17:46487846", + "strongest_snp_risk_allele": "chr17:46487846-A", + "or_or_beta": "0.0466", + "ci_text": "[0.029-0.065] unit increase", + "p_value": "4E-7", + "pvalue_mlog": "6.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 259, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs12580862", + "strongest_snp_risk_allele": "rs12580862-?", + "or_or_beta": "0.021637391", + "ci_text": "[0.016-0.027] unit decrease", + "p_value": "2E-14", + "pvalue_mlog": "13.698970004336019", + "mapped_gene": "RERG", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 260, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr19:30095007", + "strongest_snp_risk_allele": "chr19:30095007-A", + "or_or_beta": "0.036", + "ci_text": "[0.022-0.05] unit decrease", + "p_value": "6E-7", + "pvalue_mlog": "6.221848749616356", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 261, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs6970537", + "strongest_snp_risk_allele": "rs6970537-?", + "or_or_beta": "0.01973911", + "ci_text": "[0.015-0.025] unit decrease", + "p_value": "1E-13", + "pvalue_mlog": "13.0", + "mapped_gene": "HOXA10", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 262, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs4471028", + "strongest_snp_risk_allele": "rs4471028-?", + "or_or_beta": "0.019282162", + "ci_text": "[0.014-0.025] unit increase", + "p_value": "5E-13", + "pvalue_mlog": "12.301029995663981", + "mapped_gene": "GDAP1", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 263, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs9360715", + "strongest_snp_risk_allele": "rs9360715-?", + "or_or_beta": "0.019369371", + "ci_text": "[0.014-0.025] unit increase", + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "CD109 - TXNP7", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 264, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr2:169190229", + "strongest_snp_risk_allele": "chr2:169190229-A", + "or_or_beta": "0.0414", + "ci_text": "[0.025-0.058] unit decrease", + "p_value": "8E-7", + "pvalue_mlog": "6.096910013008056", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 265, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs4762308", + "strongest_snp_risk_allele": "rs4762308-?", + "or_or_beta": "0.017847497", + "ci_text": "[0.013-0.023] unit increase", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "VEZT", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 266, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs7214750", + "strongest_snp_risk_allele": "rs7214750-?", + "or_or_beta": "0.034109775", + "ci_text": "[0.024-0.044] unit decrease", + "p_value": "4E-11", + "pvalue_mlog": "10.397940008672037", + "mapped_gene": "CEP112", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 267, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr3:49442020", + "strongest_snp_risk_allele": "chr3:49442020-A", + "or_or_beta": "0.0396", + "ci_text": "[0.024-0.055] unit increase", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 268, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs17053711", + "strongest_snp_risk_allele": "rs17053711-?", + "or_or_beta": "0.019514676", + "ci_text": "[0.014-0.025] unit decrease", + "p_value": "7E-11", + "pvalue_mlog": "10.154901959985743", + "mapped_gene": "KCTD9", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 269, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:130022619", + "strongest_snp_risk_allele": "chr8:130022619-A", + "or_or_beta": "0.0389", + "ci_text": "[0.023-0.055] unit decrease", + "p_value": "1E-6", + "pvalue_mlog": "6.0", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 270, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs6119880", + "strongest_snp_risk_allele": "rs6119880-?", + "or_or_beta": "0.019059202", + "ci_text": "[0.013-0.025] unit increase", + "p_value": "8E-10", + "pvalue_mlog": "9.096910013008056", + "mapped_gene": "NOL4L", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 271, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs1777224", + "strongest_snp_risk_allele": "rs1777224-?", + "or_or_beta": "0.016213154", + "ci_text": "[0.011-0.021] unit decrease", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "HEY2-AS1, LINC02523", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 272, + "study_accession": "GCST90258642", + "disease_trait": "Endometriosis (MTAG)", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "rs3803042", + "strongest_snp_risk_allele": "rs3803042-?", + "or_or_beta": "0.016272098", + "ci_text": "[0.011-0.022] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "HOXC6, HOXC-AS2", + "initial_sample_size": "1,248,262 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 273, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr8:99933915", + "strongest_snp_risk_allele": "chr8:99933915-T", + "or_or_beta": "0.0573", + "ci_text": "[0.033-0.081] unit decrease", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 274, + "study_accession": "GCST90258638", + "disease_trait": "Endometriosis", + "study": "The genetic basis of endometriosis and comorbidity with other pain and inflammatory conditions.", + "snps": "chr20:55311677", + "strongest_snp_risk_allele": "chr20:55311677-T", + "or_or_beta": "0.0382", + "ci_text": "[0.022-0.054] unit increase", + "p_value": "3E-6", + "pvalue_mlog": "5.522878745280337", + "mapped_gene": null, + "initial_sample_size": "58,961 European ancestry cases, 700,345 European ancestry controls, 1,713 Japanese ancestry cases, 1,581 Japanese ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 275, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12731372", + "strongest_snp_risk_allele": "rs12731372-C", + "or_or_beta": "0.0116", + "ci_text": "[0.0083-0.0149] unit decrease", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "RNA5SP56 - PSMC1P12", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 276, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs15740", + "strongest_snp_risk_allele": "rs15740-G", + "or_or_beta": "0.0162", + "ci_text": "[0.013-0.02] unit increase", + "p_value": "1E-18", + "pvalue_mlog": "18.0", + "mapped_gene": "CDC42SE1, MLLT11", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 277, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs62621412", + "strongest_snp_risk_allele": "rs62621412-G", + "or_or_beta": "0.0283", + "ci_text": "[0.02-0.037] unit decrease", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "GABPB2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 278, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1218582", + "strongest_snp_risk_allele": "rs1218582-G", + "or_or_beta": "0.0098", + "ci_text": "[0.0069-0.0127] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "KCNN3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 279, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3753639", + "strongest_snp_risk_allele": "rs3753639-C", + "or_or_beta": "0.0164", + "ci_text": "[0.013-0.02] unit increase", + "p_value": "2E-17", + "pvalue_mlog": "16.69897000433602", + "mapped_gene": "ZBTB7B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 280, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs141845046", + "strongest_snp_risk_allele": "rs141845046-C", + "or_or_beta": "0.0422", + "ci_text": "[0.031-0.053] unit decrease", + "p_value": "2E-14", + "pvalue_mlog": "13.698970004336019", + "mapped_gene": "ZBTB7B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 281, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4745", + "strongest_snp_risk_allele": "rs4745-T", + "or_or_beta": "0.0091", + "ci_text": "[0.0066-0.0116] unit increase", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "EFNA1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 282, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11465205", + "strongest_snp_risk_allele": "rs11465205-C", + "or_or_beta": "0.0275", + "ci_text": "[0.02-0.035] unit decrease", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "MUC1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 283, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2297792", + "strongest_snp_risk_allele": "rs2297792-C", + "or_or_beta": "0.0121", + "ci_text": "[0.0094-0.0148] unit increase", + "p_value": "6E-19", + "pvalue_mlog": "18.221848749616356", + "mapped_gene": "UBQLN4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 284, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs61813324", + "strongest_snp_risk_allele": "rs61813324-C", + "or_or_beta": "0.0265", + "ci_text": "[0.022-0.031] unit decrease", + "p_value": "3E-27", + "pvalue_mlog": "26.522878745280337", + "mapped_gene": "MEX3A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 285, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs545731", + "strongest_snp_risk_allele": "rs545731-G", + "or_or_beta": "0.0192", + "ci_text": "[0.012-0.026] unit increase", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "LMNA - SEMA4A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 286, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs76102184", + "strongest_snp_risk_allele": "rs76102184-C", + "or_or_beta": "0.0492", + "ci_text": "[0.038-0.061] unit decrease", + "p_value": "8E-17", + "pvalue_mlog": "16.096910013008056", + "mapped_gene": "SLC25A44", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 287, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11264483", + "strongest_snp_risk_allele": "rs11264483-G", + "or_or_beta": "0.0137", + "ci_text": "[0.011-0.017] unit decrease", + "p_value": "2E-17", + "pvalue_mlog": "16.69897000433602", + "mapped_gene": "MIR9-1HG", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 288, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs745596", + "strongest_snp_risk_allele": "rs745596-C", + "or_or_beta": "0.0173", + "ci_text": "[0.012-0.023] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "IQGAP3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 289, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs138791425", + "strongest_snp_risk_allele": "rs138791425-G", + "or_or_beta": "0.0596", + "ci_text": "[0.039-0.08] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "UHMK1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 290, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs34720381", + "strongest_snp_risk_allele": "rs34720381-C", + "or_or_beta": "0.0194", + "ci_text": "[0.014-0.025] unit decrease", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "PRRC2C", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 291, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs9769038", + "strongest_snp_risk_allele": "rs9769038-A", + "or_or_beta": "0.008", + "ci_text": "[0.0066-0.0094] unit decrease", + "p_value": "2E-30", + "pvalue_mlog": "29.69897000433602", + "mapped_gene": "RNF32-DT", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 292, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs12697975", + "strongest_snp_risk_allele": "rs12697975-A", + "or_or_beta": "0.0081", + "ci_text": "[0.0067-0.0095] unit decrease", + "p_value": "3E-30", + "pvalue_mlog": "29.522878745280337", + "mapped_gene": "RNF32-DT", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 293, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs6965850", + "strongest_snp_risk_allele": "rs6965850-A", + "or_or_beta": "0.0036", + "ci_text": "[0.0024-0.0048] unit decrease", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "RNF32", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 294, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs2969124", + "strongest_snp_risk_allele": "rs2969124-T", + "or_or_beta": "0.0056", + "ci_text": "[0.0044-0.0068] unit increase", + "p_value": "1E-18", + "pvalue_mlog": "18.0", + "mapped_gene": "LMBR1 - NOM1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 295, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs6949802", + "strongest_snp_risk_allele": "rs6949802-A", + "or_or_beta": "0.007", + "ci_text": "[0.0054-0.0086] unit increase", + "p_value": "2E-19", + "pvalue_mlog": "18.69897000433602", + "mapped_gene": "UBE3C", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 296, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs17731604", + "strongest_snp_risk_allele": "rs17731604-A", + "or_or_beta": "0.0055", + "ci_text": "[0.0043-0.0067] unit decrease", + "p_value": "6E-18", + "pvalue_mlog": "17.221848749616356", + "mapped_gene": "PTPRN2", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 297, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs10244830", + "strongest_snp_risk_allele": "rs10244830-T", + "or_or_beta": "0.0041", + "ci_text": "[0.0027-0.0055] unit increase", + "p_value": "7E-10", + "pvalue_mlog": "9.154901959985743", + "mapped_gene": "PTPRN2", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 298, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs2730238", + "strongest_snp_risk_allele": "rs2730238-A", + "or_or_beta": "0.0079", + "ci_text": "[0.0063-0.0095] unit increase", + "p_value": "8E-22", + "pvalue_mlog": "21.096910013008056", + "mapped_gene": "DYNC2I1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 299, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs396061", + "strongest_snp_risk_allele": "rs396061-T", + "or_or_beta": "0.005", + "ci_text": "[0.0036-0.0064] unit decrease", + "p_value": "4E-13", + "pvalue_mlog": "12.397940008672037", + "mapped_gene": "VIPR2 - PIP5K1P2", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 300, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs10098619", + "strongest_snp_risk_allele": "rs10098619-G", + "or_or_beta": "0.004", + "ci_text": "[0.0024-0.0056] unit decrease", + "p_value": "7E-8", + "pvalue_mlog": "7.154901959985743", + "mapped_gene": "FBXO25 - TDRP", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 301, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs1604631", + "strongest_snp_risk_allele": "rs1604631-A", + "or_or_beta": "0.005", + "ci_text": "[0.0034-0.0066] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "DLGAP2", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 302, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs2600488", + "strongest_snp_risk_allele": "rs2600488-C", + "or_or_beta": "0.0081", + "ci_text": "[0.0069-0.0093] unit decrease", + "p_value": "5E-36", + "pvalue_mlog": "35.30102999566398", + "mapped_gene": "DLGAP2", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 303, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs7015086", + "strongest_snp_risk_allele": "rs7015086-A", + "or_or_beta": "0.004", + "ci_text": "[0.0026-0.0054] unit increase", + "p_value": "6E-9", + "pvalue_mlog": "8.221848749616356", + "mapped_gene": "DLGAP2", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 304, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs11779935", + "strongest_snp_risk_allele": "rs11779935-A", + "or_or_beta": "0.0135", + "ci_text": "[0.009-0.018] unit decrease", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 305, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs1393846", + "strongest_snp_risk_allele": "rs1393846-T", + "or_or_beta": "0.0056", + "ci_text": "[0.0036-0.0076] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 306, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs6988965", + "strongest_snp_risk_allele": "rs6988965-T", + "or_or_beta": "0.0037", + "ci_text": "[0.0025-0.0049] unit increase", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 307, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs2929496", + "strongest_snp_risk_allele": "rs2929496-A", + "or_or_beta": "0.0052", + "ci_text": "[0.0038-0.0066] unit decrease", + "p_value": "7E-14", + "pvalue_mlog": "13.154901959985743", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 308, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs2688325", + "strongest_snp_risk_allele": "rs2688325-T", + "or_or_beta": "0.0063", + "ci_text": "[0.0049-0.0077] unit increase", + "p_value": "1E-20", + "pvalue_mlog": "20.0", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 309, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs2980785", + "strongest_snp_risk_allele": "rs2980785-G", + "or_or_beta": "0.0067", + "ci_text": "[0.0043-0.0091] unit increase", + "p_value": "8E-9", + "pvalue_mlog": "8.096910013008056", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 310, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs1394481", + "strongest_snp_risk_allele": "rs1394481-A", + "or_or_beta": "0.0042", + "ci_text": "[0.003-0.0054] unit increase", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 311, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs7834964", + "strongest_snp_risk_allele": "rs7834964-T", + "or_or_beta": "0.0052", + "ci_text": "[0.0036-0.0068] unit increase", + "p_value": "9E-12", + "pvalue_mlog": "11.045757490560675", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 312, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs1038063", + "strongest_snp_risk_allele": "rs1038063-T", + "or_or_beta": "0.0087", + "ci_text": "[0.0075-0.0099] unit decrease", + "p_value": "1E-41", + "pvalue_mlog": "41.0", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 313, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs7828501", + "strongest_snp_risk_allele": "rs7828501-A", + "or_or_beta": "0.0081", + "ci_text": "[0.0069-0.0093] unit decrease", + "p_value": "6E-39", + "pvalue_mlog": "38.221848749616356", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 314, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs10086880", + "strongest_snp_risk_allele": "rs10086880-C", + "or_or_beta": "0.0098", + "ci_text": "[0.0084-0.0112] unit increase", + "p_value": "9E-44", + "pvalue_mlog": "43.045757490560675", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 315, + "study_accession": "GCST90255478", + "disease_trait": "Height", + "study": "Genome-wide study on 72,298 individuals in Korean biobank data for 76 traits.", + "snps": "chr4:17768841", + "strongest_snp_risk_allele": "chr4:17768841-?", + "or_or_beta": "0.01258", + "ci_text": "[0.008-0.0171] unit decrease", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": null, + "initial_sample_size": "251,000 East Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 316, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs4427198", + "strongest_snp_risk_allele": "rs4427198-T", + "or_or_beta": "0.0113", + "ci_text": "[0.01-0.012] unit decrease", + "p_value": "1E-71", + "pvalue_mlog": "71.0", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 317, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1883776", + "strongest_snp_risk_allele": "rs1883776-G", + "or_or_beta": "0.0149", + "ci_text": "[0.0098-0.02] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "ST6GALNAC5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 318, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3789586", + "strongest_snp_risk_allele": "rs3789586-C", + "or_or_beta": "0.0135", + "ci_text": "[0.0094-0.0176] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "FAF1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 319, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17378915", + "strongest_snp_risk_allele": "rs17378915-G", + "or_or_beta": "0.0192", + "ci_text": "[0.015-0.023] unit increase", + "p_value": "6E-22", + "pvalue_mlog": "21.221848749616356", + "mapped_gene": "AK5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 320, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3766431", + "strongest_snp_risk_allele": "rs3766431-G", + "or_or_beta": "0.0105", + "ci_text": "[0.0076-0.0134] unit decrease", + "p_value": "8E-13", + "pvalue_mlog": "12.096910013008056", + "mapped_gene": "SSBP3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 321, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7514041", + "strongest_snp_risk_allele": "rs7514041-G", + "or_or_beta": "0.0147", + "ci_text": "[0.012-0.018] unit increase", + "p_value": "3E-20", + "pvalue_mlog": "19.522878745280337", + "mapped_gene": "AK5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 322, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17424278", + "strongest_snp_risk_allele": "rs17424278-C", + "or_or_beta": "0.0152", + "ci_text": "[0.01-0.02] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "DAB1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 323, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs145001183", + "strongest_snp_risk_allele": "rs145001183-C", + "or_or_beta": "0.0244", + "ci_text": "[0.016-0.033] unit increase", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "MIGA1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 324, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1332630", + "strongest_snp_risk_allele": "rs1332630-G", + "or_or_beta": "0.0114", + "ci_text": "[0.0085-0.0143] unit decrease", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "PATJ", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 325, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17391694", + "strongest_snp_risk_allele": "rs17391694-C", + "or_or_beta": "0.0328", + "ci_text": "[0.029-0.037] unit decrease", + "p_value": "3E-64", + "pvalue_mlog": "63.52287874528034", + "mapped_gene": "GIPC2 - RNFT1P2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 326, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4915604", + "strongest_snp_risk_allele": "rs4915604-G", + "or_or_beta": "0.0087", + "ci_text": "[0.0058-0.0116] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "L1TD1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 327, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11162479", + "strongest_snp_risk_allele": "rs11162479-G", + "or_or_beta": "0.0114", + "ci_text": "[0.0081-0.0147] unit decrease", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "PTGFR", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 328, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs35586449", + "strongest_snp_risk_allele": "rs35586449-C", + "or_or_beta": "0.0151", + "ci_text": "[0.01-0.02] unit increase", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "PTGFR", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 329, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6424780", + "strongest_snp_risk_allele": "rs6424780-G", + "or_or_beta": "0.0138", + "ci_text": "[0.0089-0.0187] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "PTGFR - IFI44L", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 330, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2154297", + "strongest_snp_risk_allele": "rs2154297-C", + "or_or_beta": "0.0094", + "ci_text": "[0.0061-0.0127] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "HMGB1P18 - HNRNPA1P64", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 331, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6690398", + "strongest_snp_risk_allele": "rs6690398-G", + "or_or_beta": "0.0096", + "ci_text": "[0.0067-0.0125] unit decrease", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "PDE4B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 332, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2801321", + "strongest_snp_risk_allele": "rs2801321-G", + "or_or_beta": "0.0168", + "ci_text": "[0.012-0.022] unit increase", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "NEGR1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 333, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1342862", + "strongest_snp_risk_allele": "rs1342862-C", + "or_or_beta": "0.0215", + "ci_text": "[0.015-0.028] unit increase", + "p_value": "7E-12", + "pvalue_mlog": "11.154901959985743", + "mapped_gene": "NEGR1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 334, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12127789", + "strongest_snp_risk_allele": "rs12127789-G", + "or_or_beta": "0.0178", + "ci_text": "[0.013-0.022] unit decrease", + "p_value": "4E-14", + "pvalue_mlog": "13.397940008672037", + "mapped_gene": "NEGR1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 335, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2568958", + "strongest_snp_risk_allele": "rs2568958-G", + "or_or_beta": "0.027", + "ci_text": "[0.024-0.03] unit decrease", + "p_value": "3E-88", + "pvalue_mlog": "87.52287874528034", + "mapped_gene": "LINC02796", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 336, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs72684636", + "strongest_snp_risk_allele": "rs72684636-G", + "or_or_beta": "0.0319", + "ci_text": "[0.023-0.041] unit increase", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "LINC02796", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 337, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6692386", + "strongest_snp_risk_allele": "rs6692386-G", + "or_or_beta": "0.0144", + "ci_text": "[0.0093-0.0195] unit decrease", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "LINC02796", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 338, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs79852272", + "strongest_snp_risk_allele": "rs79852272-G", + "or_or_beta": "0.0221", + "ci_text": "[0.015-0.029] unit increase", + "p_value": "6E-11", + "pvalue_mlog": "10.221848749616356", + "mapped_gene": "LINC02796", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 339, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4950045", + "strongest_snp_risk_allele": "rs4950045-C", + "or_or_beta": "0.0163", + "ci_text": "[0.011-0.022] unit increase", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "LINC01760 - LINC01650", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 340, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1514175", + "strongest_snp_risk_allele": "rs1514175-G", + "or_or_beta": "0.0148", + "ci_text": "[0.012-0.017] unit decrease", + "p_value": "4E-28", + "pvalue_mlog": "27.397940008672037", + "mapped_gene": "FPGT-TNNI3K, TNNI3K", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 341, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11584409", + "strongest_snp_risk_allele": "rs11584409-G", + "or_or_beta": "0.0167", + "ci_text": "[0.012-0.021] unit decrease", + "p_value": "4E-13", + "pvalue_mlog": "12.397940008672037", + "mapped_gene": "LINC02607", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 342, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1361739", + "strongest_snp_risk_allele": "rs1361739-G", + "or_or_beta": "0.0179", + "ci_text": "[0.015-0.021] unit increase", + "p_value": "2E-28", + "pvalue_mlog": "27.69897000433602", + "mapped_gene": "LINC02607 - LINC02790", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 343, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs903676", + "strongest_snp_risk_allele": "rs903676-G", + "or_or_beta": "0.0123", + "ci_text": "[0.0086-0.016] unit increase", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "IPO9-AS1, NAV1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 344, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12731187", + "strongest_snp_risk_allele": "rs12731187-C", + "or_or_beta": "0.0094", + "ci_text": "[0.0063-0.0125] unit increase", + "p_value": "8E-9", + "pvalue_mlog": "8.096910013008056", + "mapped_gene": "ELF3 - Y_RNA", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 345, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4623766", + "strongest_snp_risk_allele": "rs4623766-T", + "or_or_beta": "0.0129", + "ci_text": "[0.0096-0.0162] unit increase", + "p_value": "7E-15", + "pvalue_mlog": "14.154901959985743", + "mapped_gene": "PTPN7", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 346, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs60226453", + "strongest_snp_risk_allele": "rs60226453-C", + "or_or_beta": "0.0149", + "ci_text": "[0.011-0.019] unit decrease", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "OPTC - ATP2B4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 347, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2821231", + "strongest_snp_risk_allele": "rs2821231-C", + "or_or_beta": "0.0087", + "ci_text": "[0.0056-0.0118] unit increase", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "OPTC - ATP2B4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 348, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2802780", + "strongest_snp_risk_allele": "rs2802780-C", + "or_or_beta": "0.0107", + "ci_text": "[0.0074-0.014] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "OPTC - ATP2B4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 349, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs823074", + "strongest_snp_risk_allele": "rs823074-C", + "or_or_beta": "0.0107", + "ci_text": "[0.0078-0.0136] unit decrease", + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "SLC41A1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 350, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11576725", + "strongest_snp_risk_allele": "rs11576725-G", + "or_or_beta": "0.0098", + "ci_text": "[0.0065-0.0131] unit increase", + "p_value": "8E-9", + "pvalue_mlog": "8.096910013008056", + "mapped_gene": "PLXNA2 - LINC01735", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 351, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11119208", + "strongest_snp_risk_allele": "rs11119208-G", + "or_or_beta": "0.0085", + "ci_text": "[0.0056-0.0114] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LINC01774 - TFDP1P1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 352, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17014375", + "strongest_snp_risk_allele": "rs17014375-G", + "or_or_beta": "0.0156", + "ci_text": "[0.011-0.02] unit increase", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "LINC01698", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 353, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12140373", + "strongest_snp_risk_allele": "rs12140373-G", + "or_or_beta": "0.0113", + "ci_text": "[0.0084-0.0142] unit decrease", + "p_value": "2E-14", + "pvalue_mlog": "13.698970004336019", + "mapped_gene": "SYT14", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 354, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6695101", + "strongest_snp_risk_allele": "rs6695101-G", + "or_or_beta": "0.014", + "ci_text": "[0.0097-0.0183] unit decrease", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "SYT14", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 355, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2841427", + "strongest_snp_risk_allele": "rs2841427-C", + "or_or_beta": "0.0098", + "ci_text": "[0.0065-0.0131] unit decrease", + "p_value": "8E-9", + "pvalue_mlog": "8.096910013008056", + "mapped_gene": "RPS6KC1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 356, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2785990", + "strongest_snp_risk_allele": "rs2785990-C", + "or_or_beta": "0.0116", + "ci_text": "[0.0089-0.0143] unit increase", + "p_value": "1E-16", + "pvalue_mlog": "16.0", + "mapped_gene": "LYPLAL1-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 357, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2738755", + "strongest_snp_risk_allele": "rs2738755-C", + "or_or_beta": "0.0078", + "ci_text": "[0.0051-0.0105] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "HLX", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 358, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2615075", + "strongest_snp_risk_allele": "rs2615075-G", + "or_or_beta": "0.0098", + "ci_text": "[0.0067-0.0129] unit increase", + "p_value": "7E-10", + "pvalue_mlog": "9.154901959985743", + "mapped_gene": "RNU6-1304P - SRP9", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 359, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs9424465", + "strongest_snp_risk_allele": "rs9424465-G", + "or_or_beta": "0.0095", + "ci_text": "[0.0062-0.0128] unit increase", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": "SIPA1L2 - RNU6-1211P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 360, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2153204", + "strongest_snp_risk_allele": "rs2153204-G", + "or_or_beta": "0.0087", + "ci_text": "[0.0056-0.0118] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "TBCE", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 361, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1874129", + "strongest_snp_risk_allele": "rs1874129-G", + "or_or_beta": "0.0142", + "ci_text": "[0.0097-0.0187] unit increase", + "p_value": "4E-10", + "pvalue_mlog": "9.397940008672037", + "mapped_gene": "MTCYBP14 - MTND6P14", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 362, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1439524", + "strongest_snp_risk_allele": "rs1439524-G", + "or_or_beta": "0.0133", + "ci_text": "[0.0086-0.018] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "PLD5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 363, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12125523", + "strongest_snp_risk_allele": "rs12125523-T", + "or_or_beta": "0.0142", + "ci_text": "[0.0099-0.0185] unit decrease", + "p_value": "6E-11", + "pvalue_mlog": "10.221848749616356", + "mapped_gene": "LINC02790 - RNU1-130P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 364, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12130426", + "strongest_snp_risk_allele": "rs12130426-C", + "or_or_beta": "0.0138", + "ci_text": "[0.011-0.017] unit decrease", + "p_value": "3E-20", + "pvalue_mlog": "19.522878745280337", + "mapped_gene": "LINC02790 - RNU1-130P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 365, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs76589258", + "strongest_snp_risk_allele": "rs76589258-G", + "or_or_beta": "0.0246", + "ci_text": "[0.016-0.033] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LINC01787", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 366, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11165614", + "strongest_snp_risk_allele": "rs11165614-G", + "or_or_beta": "0.0125", + "ci_text": "[0.0082-0.0168] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LINC01787 - UBE2WP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 367, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs531190", + "strongest_snp_risk_allele": "rs531190-G", + "or_or_beta": "0.0299", + "ci_text": "[0.022-0.037] unit increase", + "p_value": "2E-15", + "pvalue_mlog": "14.698970004336019", + "mapped_gene": "LINC01787 - UBE2WP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 368, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1967768", + "strongest_snp_risk_allele": "rs1967768-C", + "or_or_beta": "0.0264", + "ci_text": "[0.02-0.033] unit decrease", + "p_value": "1E-14", + "pvalue_mlog": "14.0", + "mapped_gene": "UBE2WP1 - EEF1A1P11", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 369, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11165643", + "strongest_snp_risk_allele": "rs11165643-C", + "or_or_beta": "0.0196", + "ci_text": "[0.017-0.023] unit decrease", + "p_value": "3E-40", + "pvalue_mlog": "39.52287874528034", + "mapped_gene": "EEF1A1P11 - RN7SL831P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 370, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6671669", + "strongest_snp_risk_allele": "rs6671669-G", + "or_or_beta": "0.0141", + "ci_text": "[0.011-0.017] unit increase", + "p_value": "2E-20", + "pvalue_mlog": "19.69897000433602", + "mapped_gene": "PTBP2 - DPYD", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 371, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17377638", + "strongest_snp_risk_allele": "rs17377638-G", + "or_or_beta": "0.014", + "ci_text": "[0.0091-0.0189] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "DPYD", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 372, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1497675", + "strongest_snp_risk_allele": "rs1497675-C", + "or_or_beta": "0.0082", + "ci_text": "[0.0053-0.0111] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "THAP3P1 - CDK4P1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 373, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1730859", + "strongest_snp_risk_allele": "rs1730859-G", + "or_or_beta": "0.0125", + "ci_text": "[0.0094-0.0156] unit increase", + "p_value": "1E-15", + "pvalue_mlog": "15.0", + "mapped_gene": "PRMT6 - NTNG1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 374, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12035149", + "strongest_snp_risk_allele": "rs12035149-G", + "or_or_beta": "0.017", + "ci_text": "[0.013-0.021] unit increase", + "p_value": "2E-20", + "pvalue_mlog": "19.69897000433602", + "mapped_gene": "NTNG1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 375, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17531363", + "strongest_snp_risk_allele": "rs17531363-C", + "or_or_beta": "0.0135", + "ci_text": "[0.01-0.017] unit decrease", + "p_value": "9E-16", + "pvalue_mlog": "15.045757490560675", + "mapped_gene": "NTNG1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 376, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs76965144", + "strongest_snp_risk_allele": "rs76965144-T", + "or_or_beta": "0.0146", + "ci_text": "[0.0093-0.0199] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "VAV3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 377, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1781065", + "strongest_snp_risk_allele": "rs1781065-G", + "or_or_beta": "0.009", + "ci_text": "[0.0059-0.0121] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "VAV3-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 378, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs111751551", + "strongest_snp_risk_allele": "rs111751551-G", + "or_or_beta": "0.0353", + "ci_text": "[0.023-0.048] unit increase", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "PRPF38B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 379, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs74920406", + "strongest_snp_risk_allele": "rs74920406-C", + "or_or_beta": "0.0212", + "ci_text": "[0.015-0.027] unit decrease", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "ELAPOR1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 380, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3820667", + "strongest_snp_risk_allele": "rs3820667-C", + "or_or_beta": "0.0098", + "ci_text": "[0.0069-0.0127] unit decrease", + "p_value": "3E-11", + "pvalue_mlog": "10.522878745280337", + "mapped_gene": "PSMA5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 381, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7550711", + "strongest_snp_risk_allele": "rs7550711-C", + "or_or_beta": "0.0615", + "ci_text": "[0.054-0.069] unit decrease", + "p_value": "2E-53", + "pvalue_mlog": "52.69897000433602", + "mapped_gene": "GPR61", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 382, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6537837", + "strongest_snp_risk_allele": "rs6537837-C", + "or_or_beta": "0.011", + "ci_text": "[0.0077-0.0143] unit decrease", + "p_value": "9E-11", + "pvalue_mlog": "10.045757490560675", + "mapped_gene": "GNAI3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 383, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12033257", + "strongest_snp_risk_allele": "rs12033257-G", + "or_or_beta": "0.0139", + "ci_text": "[0.011-0.017] unit decrease", + "p_value": "5E-18", + "pvalue_mlog": "17.30102999566398", + "mapped_gene": "KCND3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 384, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2788610", + "strongest_snp_risk_allele": "rs2788610-C", + "or_or_beta": "0.0126", + "ci_text": "[0.0083-0.0169] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "KCND3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 385, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6696332", + "strongest_snp_risk_allele": "rs6696332-C", + "or_or_beta": "0.0108", + "ci_text": "[0.0073-0.0143] unit increase", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "CSDE1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 386, + "study_accession": "GCST90255478", + "disease_trait": "Height", + "study": "Genome-wide study on 72,298 individuals in Korean biobank data for 76 traits.", + "snps": "chr4:17781478", + "strongest_snp_risk_allele": "chr4:17781478-?", + "or_or_beta": "0.04768", + "ci_text": "[0.041-0.054] unit decrease", + "p_value": "5E-46", + "pvalue_mlog": "45.30102999566398", + "mapped_gene": null, + "initial_sample_size": "251,000 East Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 387, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1498113", + "strongest_snp_risk_allele": "rs1498113-C", + "or_or_beta": "0.009", + "ci_text": "[0.0059-0.0121] unit decrease", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "HNRNPA1P43 - LINC01649", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 388, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs61828641", + "strongest_snp_risk_allele": "rs61828641-G", + "or_or_beta": "0.0233", + "ci_text": "[0.018-0.029] unit decrease", + "p_value": "9E-18", + "pvalue_mlog": "17.045757490560675", + "mapped_gene": "RABGAP1L", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 389, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12122361", + "strongest_snp_risk_allele": "rs12122361-G", + "or_or_beta": "0.0153", + "ci_text": "[0.012-0.019] unit decrease", + "p_value": "2E-15", + "pvalue_mlog": "14.698970004336019", + "mapped_gene": "RABGAP1L", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 390, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10489330", + "strongest_snp_risk_allele": "rs10489330-G", + "or_or_beta": "0.0144", + "ci_text": "[0.0097-0.0191] unit decrease", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "MRPS14", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 391, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10913118", + "strongest_snp_risk_allele": "rs10913118-C", + "or_or_beta": "0.0101", + "ci_text": "[0.007-0.0132] unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "COP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 392, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs742791", + "strongest_snp_risk_allele": "rs742791-G", + "or_or_beta": "0.0186", + "ci_text": "[0.014-0.024] unit decrease", + "p_value": "1E-12", + "pvalue_mlog": "12.0", + "mapped_gene": "LINC01645", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 393, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17625634", + "strongest_snp_risk_allele": "rs17625634-C", + "or_or_beta": "0.0107", + "ci_text": "[0.007-0.0144] unit decrease", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "LINC01645 - LINC01741", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 394, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3922649", + "strongest_snp_risk_allele": "rs3922649-G", + "or_or_beta": "0.0111", + "ci_text": "[0.0082-0.014] unit decrease", + "p_value": "2E-14", + "pvalue_mlog": "13.698970004336019", + "mapped_gene": "LINC01741 - SEC16B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 395, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs72717429", + "strongest_snp_risk_allele": "rs72717429-G", + "or_or_beta": "0.0375", + "ci_text": "[0.028-0.047] unit increase", + "p_value": "9E-15", + "pvalue_mlog": "14.045757490560675", + "mapped_gene": "LINC01741 - SEC16B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 396, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs543874", + "strongest_snp_risk_allele": "rs543874-G", + "or_or_beta": "0.0433", + "ci_text": "[0.04-0.046] unit increase", + "p_value": "7E-152", + "pvalue_mlog": "151.15490195998575", + "mapped_gene": "LINC01741 - SEC16B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 397, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs58689292", + "strongest_snp_risk_allele": "rs58689292-G", + "or_or_beta": "0.0133", + "ci_text": "[0.0098-0.0168] unit increase", + "p_value": "8E-14", + "pvalue_mlog": "13.096910013008056", + "mapped_gene": "LINC01741 - SEC16B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 398, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs631250", + "strongest_snp_risk_allele": "rs631250-T", + "or_or_beta": "0.018", + "ci_text": "[0.012-0.024] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "LINC01741 - SEC16B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 399, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3828137", + "strongest_snp_risk_allele": "rs3828137-G", + "or_or_beta": "0.015", + "ci_text": "[0.012-0.018] unit increase", + "p_value": "1E-23", + "pvalue_mlog": "23.0", + "mapped_gene": "CRYZL2P-SEC16B, SEC16B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 400, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs34246968", + "strongest_snp_risk_allele": "rs34246968-G", + "or_or_beta": "0.0391", + "ci_text": "[0.03-0.049] unit increase", + "p_value": "6E-16", + "pvalue_mlog": "15.221848749616356", + "mapped_gene": "SEC16B, CRYZL2P-SEC16B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 401, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4650985", + "strongest_snp_risk_allele": "rs4650985-C", + "or_or_beta": "0.0109", + "ci_text": "[0.0078-0.014] unit increase", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "CRYZL2P-SEC16B, SEC16B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 402, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11584600", + "strongest_snp_risk_allele": "rs11584600-G", + "or_or_beta": "0.0158", + "ci_text": "[0.013-0.019] unit decrease", + "p_value": "3E-22", + "pvalue_mlog": "21.522878745280337", + "mapped_gene": "CRYZL2P, CRYZL2P, CRYZL2P-SEC16B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 403, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2024764", + "strongest_snp_risk_allele": "rs2024764-G", + "or_or_beta": "0.0074", + "ci_text": "[0.0047-0.0101] unit increase", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": "C1orf21 - EDEM3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 404, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs284077", + "strongest_snp_risk_allele": "rs284077-C", + "or_or_beta": "0.0091", + "ci_text": "[0.0058-0.0124] unit increase", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "LINC03121 - RPS3AP9", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 405, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10920678", + "strongest_snp_risk_allele": "rs10920678-G", + "or_or_beta": "0.0176", + "ci_text": "[0.015-0.021] unit decrease", + "p_value": "1E-32", + "pvalue_mlog": "32.0", + "mapped_gene": "BRINP3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 406, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs814953", + "strongest_snp_risk_allele": "rs814953-G", + "or_or_beta": "0.014", + "ci_text": "[0.0095-0.0185] unit decrease", + "p_value": "6E-10", + "pvalue_mlog": "9.221848749616356", + "mapped_gene": "BRINP3-DT - LINC01720", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 407, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2489676", + "strongest_snp_risk_allele": "rs2489676-G", + "or_or_beta": "0.0099", + "ci_text": "[0.007-0.0128] unit increase", + "p_value": "9E-11", + "pvalue_mlog": "10.045757490560675", + "mapped_gene": "LINC01720 - HNRNPA1P46", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 408, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12141968", + "strongest_snp_risk_allele": "rs12141968-G", + "or_or_beta": "0.0119", + "ci_text": "[0.009-0.0148] unit increase", + "p_value": "1E-14", + "pvalue_mlog": "14.0", + "mapped_gene": "RNU6-983P - LINC01724", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 409, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1999981", + "strongest_snp_risk_allele": "rs1999981-G", + "or_or_beta": "0.0097", + "ci_text": "[0.0068-0.0126] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "RNU6-983P - LINC01724", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 410, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1009188", + "strongest_snp_risk_allele": "rs1009188-C", + "or_or_beta": "0.0139", + "ci_text": "[0.011-0.017] unit decrease", + "p_value": "2E-16", + "pvalue_mlog": "15.698970004336019", + "mapped_gene": "CRB1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 411, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs997474", + "strongest_snp_risk_allele": "rs997474-G", + "or_or_beta": "0.0142", + "ci_text": "[0.0097-0.0187] unit decrease", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "NAV1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 412, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7527583", + "strongest_snp_risk_allele": "rs7527583-G", + "or_or_beta": "0.0089", + "ci_text": "[0.0058-0.012] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "NAV1, IPO9-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 413, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs76596133", + "strongest_snp_risk_allele": "rs76596133-G", + "or_or_beta": "0.0131", + "ci_text": "[0.0096-0.0166] unit increase", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "LINC02808", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 414, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11162297", + "strongest_snp_risk_allele": "rs11162297-G", + "or_or_beta": "0.0097", + "ci_text": "[0.0068-0.0126] unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "PIGK - AK5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 415, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7541587", + "strongest_snp_risk_allele": "rs7541587-C", + "or_or_beta": "0.0132", + "ci_text": "[0.0087-0.0177] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "NFIA-AS2, NFIA", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 416, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs540742", + "strongest_snp_risk_allele": "rs540742-C", + "or_or_beta": "0.0152", + "ci_text": "[0.012-0.018] unit decrease", + "p_value": "9E-22", + "pvalue_mlog": "21.045757490560675", + "mapped_gene": "GIPC2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 417, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12140153", + "strongest_snp_risk_allele": "rs12140153-G", + "or_or_beta": "0.0327", + "ci_text": "[0.028-0.038] unit increase", + "p_value": "4E-36", + "pvalue_mlog": "35.39794000867204", + "mapped_gene": "PATJ", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 418, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs149600839", + "strongest_snp_risk_allele": "rs149600839-C", + "or_or_beta": "0.0746", + "ci_text": "[0.054-0.096] unit decrease", + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "RNFT1P2 - MGC27382", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 419, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1496023", + "strongest_snp_risk_allele": "rs1496023-G", + "or_or_beta": "0.0094", + "ci_text": "[0.0065-0.0123] unit increase", + "p_value": "6E-10", + "pvalue_mlog": "9.221848749616356", + "mapped_gene": "UBE2U - RNU7-62P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 420, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs61731122", + "strongest_snp_risk_allele": "rs61731122-G", + "or_or_beta": "0.0266", + "ci_text": "[0.017-0.036] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "CACHD1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 421, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11208659", + "strongest_snp_risk_allele": "rs11208659-C", + "or_or_beta": "0.0229", + "ci_text": "[0.018-0.028] unit increase", + "p_value": "7E-17", + "pvalue_mlog": "16.154901959985743", + "mapped_gene": "LEPR", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 422, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs55953331", + "strongest_snp_risk_allele": "rs55953331-G", + "or_or_beta": "0.0137", + "ci_text": "[0.009-0.0184] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "LEPR - RN7SL854P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 423, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs284227", + "strongest_snp_risk_allele": "rs284227-C", + "or_or_beta": "0.0133", + "ci_text": "[0.01-0.0166] unit increase", + "p_value": "5E-15", + "pvalue_mlog": "14.301029995663981", + "mapped_gene": "ADGRL2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 424, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11580836", + "strongest_snp_risk_allele": "rs11580836-C", + "or_or_beta": "0.01", + "ci_text": "[0.0067-0.0133] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "TTLL7", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 425, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7539132", + "strongest_snp_risk_allele": "rs7539132-C", + "or_or_beta": "0.0104", + "ci_text": "[0.0071-0.0137] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "PKN2-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 426, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6696987", + "strongest_snp_risk_allele": "rs6696987-C", + "or_or_beta": "0.0148", + "ci_text": "[0.0097-0.0199] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "BARHL2 - LINC02609", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 427, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6428601", + "strongest_snp_risk_allele": "rs6428601-C", + "or_or_beta": "0.0089", + "ci_text": "[0.0058-0.012] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "BARHL2 - LINC02609", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 428, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1188903", + "strongest_snp_risk_allele": "rs1188903-G", + "or_or_beta": "0.0129", + "ci_text": "[0.0084-0.0174] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "LINC01763", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 429, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1876750", + "strongest_snp_risk_allele": "rs1876750-G", + "or_or_beta": "0.0133", + "ci_text": "[0.0092-0.0174] unit increase", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "LINC02607", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 430, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11210490", + "strongest_snp_risk_allele": "rs11210490-G", + "or_or_beta": "0.0084", + "ci_text": "[0.0059-0.0109] unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "ERICH3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 431, + "study_accession": "GCST90239836", + "disease_trait": "Plasma clozapine levels in treatment-resistant schizophrenia", + "study": "Pharmacokinetics and pharmacogenomics of clozapine in an ancestrally diverse sample: a longitudinal analysis and genome-wide association study using UK clinical monitoring data.", + "snps": "rs3732218", + "strongest_snp_risk_allele": "rs3732218-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "UGT1A6, UGT1A7, UGT1A10, UGT1A9, UGT1A5, UGT1A8", + "initial_sample_size": "3,677 European ancestry individuals, 243 Sub-Saharan African ancestry individuals, 122 Greater Middle Eastern (Middle Eastern, North African or Persian) individuals, 244 South Asian ancestry individuals, 41 East Asian ancestry individuals, 168 NR ancestry, Other admixed ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 432, + "study_accession": "GCST90239836", + "disease_trait": "Plasma clozapine levels in treatment-resistant schizophrenia", + "study": "Pharmacokinetics and pharmacogenomics of clozapine in an ancestrally diverse sample: a longitudinal analysis and genome-wide association study using UK clinical monitoring data.", + "snps": "rs2472297", + "strongest_snp_risk_allele": "rs2472297-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "4E-11", + "pvalue_mlog": "10.397940008672037", + "mapped_gene": "CYP1A1 - CYP1A2", + "initial_sample_size": "3,677 European ancestry individuals, 243 Sub-Saharan African ancestry individuals, 122 Greater Middle Eastern (Middle Eastern, North African or Persian) individuals, 244 South Asian ancestry individuals, 41 East Asian ancestry individuals, 168 NR ancestry, Other admixed ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 433, + "study_accession": "GCST90239837", + "disease_trait": "Plasma norclozapine levels in treatment-resistant schizophrenia", + "study": "Pharmacokinetics and pharmacogenomics of clozapine in an ancestrally diverse sample: a longitudinal analysis and genome-wide association study using UK clinical monitoring data.", + "snps": "rs2926036", + "strongest_snp_risk_allele": "rs2926036-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "3E-28", + "pvalue_mlog": "27.522878745280337", + "mapped_gene": "UGT2B10", + "initial_sample_size": "3,677 European ancestry individuals, 243 Sub-Saharan African ancestry individuals, 122 Greater Middle Eastern (Middle Eastern, North African or Persian) individuals, 244 South Asian ancestry individuals, 41 East Asian ancestry individuals, 168 NR ancestry, Other admixed ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 434, + "study_accession": "GCST90239837", + "disease_trait": "Plasma norclozapine levels in treatment-resistant schizophrenia", + "study": "Pharmacokinetics and pharmacogenomics of clozapine in an ancestrally diverse sample: a longitudinal analysis and genome-wide association study using UK clinical monitoring data.", + "snps": "rs3732218", + "strongest_snp_risk_allele": "rs3732218-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "8E-13", + "pvalue_mlog": "12.096910013008056", + "mapped_gene": "UGT1A6, UGT1A7, UGT1A10, UGT1A9, UGT1A5, UGT1A8", + "initial_sample_size": "3,677 European ancestry individuals, 243 Sub-Saharan African ancestry individuals, 122 Greater Middle Eastern (Middle Eastern, North African or Persian) individuals, 244 South Asian ancestry individuals, 41 East Asian ancestry individuals, 168 NR ancestry, Other admixed ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 435, + "study_accession": "GCST90239837", + "disease_trait": "Plasma norclozapine levels in treatment-resistant schizophrenia", + "study": "Pharmacokinetics and pharmacogenomics of clozapine in an ancestrally diverse sample: a longitudinal analysis and genome-wide association study using UK clinical monitoring data.", + "snps": "rs2472297", + "strongest_snp_risk_allele": "rs2472297-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "CYP1A1 - CYP1A2", + "initial_sample_size": "3,677 European ancestry individuals, 243 Sub-Saharan African ancestry individuals, 122 Greater Middle Eastern (Middle Eastern, North African or Persian) individuals, 244 South Asian ancestry individuals, 41 East Asian ancestry individuals, 168 NR ancestry, Other admixed ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 436, + "study_accession": "GCST90239838", + "disease_trait": "Plasma clozapine-norclozapine ratio in treatment-resistant schizophrenia", + "study": "Pharmacokinetics and pharmacogenomics of clozapine in an ancestrally diverse sample: a longitudinal analysis and genome-wide association study using UK clinical monitoring data.", + "snps": "rs835309", + "strongest_snp_risk_allele": "rs835309-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "2E-153", + "pvalue_mlog": "152.69897000433602", + "mapped_gene": "UGT2B10", + "initial_sample_size": "3,677 European ancestry individuals, 243 Sub-Saharan African ancestry individuals, 122 Greater Middle Eastern (Middle Eastern, North African or Persian) individuals, 244 South Asian ancestry individuals, 41 East Asian ancestry individuals, 168 NR ancestry, Other admixed ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 437, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs748125345", + "strongest_snp_risk_allele": "rs748125345-CCACACACACA", + "or_or_beta": "0.60715", + "ci_text": "[0.47-0.75] unit increase", + "p_value": "2E-17", + "pvalue_mlog": "16.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 438, + "study_accession": "GCST90239838", + "disease_trait": "Plasma clozapine-norclozapine ratio in treatment-resistant schizophrenia", + "study": "Pharmacokinetics and pharmacogenomics of clozapine in an ancestrally diverse sample: a longitudinal analysis and genome-wide association study using UK clinical monitoring data.", + "snps": "rs1926711", + "strongest_snp_risk_allele": "rs1926711-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "5E-22", + "pvalue_mlog": "21.30102999566398", + "mapped_gene": "CYP2C18", + "initial_sample_size": "3,677 European ancestry individuals, 243 Sub-Saharan African ancestry individuals, 122 Greater Middle Eastern (Middle Eastern, North African or Persian) individuals, 244 South Asian ancestry individuals, 41 East Asian ancestry individuals, 168 NR ancestry, Other admixed ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 439, + "study_accession": "GCST90239838", + "disease_trait": "Plasma clozapine-norclozapine ratio in treatment-resistant schizophrenia", + "study": "Pharmacokinetics and pharmacogenomics of clozapine in an ancestrally diverse sample: a longitudinal analysis and genome-wide association study using UK clinical monitoring data.", + "snps": "rs41301394", + "strongest_snp_risk_allele": "rs41301394-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": "POR", + "initial_sample_size": "3,677 European ancestry individuals, 243 Sub-Saharan African ancestry individuals, 122 Greater Middle Eastern (Middle Eastern, North African or Persian) individuals, 244 South Asian ancestry individuals, 41 East Asian ancestry individuals, 168 NR ancestry, Other admixed ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 440, + "study_accession": "GCST90162550", + "disease_trait": "Paradoxical eczema in biologic-treated plaque psoriasis", + "study": "Atopic polygenic risk score is associated with paradoxical eczema developing in psoriasis patients treated with biologics.", + "snps": "rs192705221", + "strongest_snp_risk_allele": "rs192705221-A", + "or_or_beta": "7.94", + "ci_text": "[4.09-15.43]", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "SGPL1 - UNC5B", + "initial_sample_size": "88 European ancestry cases, 3,124 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 441, + "study_accession": "GCST90162550", + "disease_trait": "Paradoxical eczema in biologic-treated plaque psoriasis", + "study": "Atopic polygenic risk score is associated with paradoxical eczema developing in psoriasis patients treated with biologics.", + "snps": "rs72925168", + "strongest_snp_risk_allele": "rs72925168-G", + "or_or_beta": "4.98", + "ci_text": "[2.96-8.4]", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "SLC1A2", + "initial_sample_size": "88 European ancestry cases, 3,124 European ancestry controls", + "replication_sample_size": "NA" + }, + { + "id": 442, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7161974", + "strongest_snp_risk_allele": "rs7161974-T", + "or_or_beta": "0.405552", + "ci_text": "[0.33-0.48] unit increase", + "p_value": "5E-25", + "pvalue_mlog": "24.30102999566398", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 443, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7174027", + "strongest_snp_risk_allele": "rs7174027-A", + "or_or_beta": "0.511366", + "ci_text": "[0.46-0.56] unit increase", + "p_value": "1E-85", + "pvalue_mlog": "85.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 444, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7182377", + "strongest_snp_risk_allele": "rs7182377-G", + "or_or_beta": "0.394566", + "ci_text": "[0.33-0.46] unit increase", + "p_value": "4E-33", + "pvalue_mlog": "32.39794000867204", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 445, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs72714109", + "strongest_snp_risk_allele": "rs72714109-C", + "or_or_beta": "0.32768", + "ci_text": "[0.28-0.38] unit increase", + "p_value": "2E-35", + "pvalue_mlog": "34.69897000433602", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 446, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs72714114", + "strongest_snp_risk_allele": "rs72714114-G", + "or_or_beta": "0.201079", + "ci_text": "[0.13-0.27] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 447, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs745333093", + "strongest_snp_risk_allele": "rs745333093-A", + "or_or_beta": "0.453793", + "ci_text": "[0.36-0.55] unit increase", + "p_value": "2E-19", + "pvalue_mlog": "18.69897000433602", + "mapped_gene": "HERC2 - HERC2P1", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 448, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs746861", + "strongest_snp_risk_allele": "rs746861-T", + "or_or_beta": "0.182497", + "ci_text": "[0.14-0.23] unit decrease", + "p_value": "1E-16", + "pvalue_mlog": "16.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 449, + "study_accession": "GCST007841", + "disease_trait": "Height", + "study": "Leveraging Polygenic Functional Enrichment to Improve GWAS Power.", + "snps": "rs17091116", + "strongest_snp_risk_allele": "rs17091116-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "9E-10", + "pvalue_mlog": "9.045757490560675", + "mapped_gene": "SERPINA5", + "initial_sample_size": "approximately 458,000 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 450, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7494925", + "strongest_snp_risk_allele": "rs7494925-C", + "or_or_beta": "0.183567", + "ci_text": "[0.12-0.24] unit decrease", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "GOLGA6L7", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 451, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7494942", + "strongest_snp_risk_allele": "rs7494942-A", + "or_or_beta": "0.626421", + "ci_text": "[0.59-0.67] unit increase", + "p_value": "4E-186", + "pvalue_mlog": "185.39794000867204", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 452, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs755407864", + "strongest_snp_risk_allele": "rs755407864-CA", + "or_or_beta": "0.640537", + "ci_text": "[0.55-0.73] unit decrease", + "p_value": "5E-44", + "pvalue_mlog": "43.30102999566398", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 453, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs79743671", + "strongest_snp_risk_allele": "rs79743671-A", + "or_or_beta": "0.370635", + "ci_text": "[0.3-0.44] unit increase", + "p_value": "9E-28", + "pvalue_mlog": "27.045757490560675", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 454, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs8033755", + "strongest_snp_risk_allele": "rs8033755-C", + "or_or_beta": "0.674277", + "ci_text": "[0.53-0.82] unit increase", + "p_value": "1E-20", + "pvalue_mlog": "20.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 455, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs869190367", + "strongest_snp_risk_allele": "rs869190367-C", + "or_or_beta": "0.564306", + "ci_text": "[0.49-0.64] unit increase", + "p_value": "4E-44", + "pvalue_mlog": "43.39794000867204", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 456, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs895828", + "strongest_snp_risk_allele": "rs895828-C", + "or_or_beta": "0.185158", + "ci_text": "[0.13-0.24] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 457, + "study_accession": "GCST90255685", + "disease_trait": "Freckles", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs12203592", + "strongest_snp_risk_allele": "rs12203592-T", + "or_or_beta": "0.458651", + "ci_text": "[0.39-0.53] unit increase", + "p_value": "7E-40", + "pvalue_mlog": "39.15490195998574", + "mapped_gene": "IRF4", + "initial_sample_size": "4,984 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 458, + "study_accession": "GCST90255685", + "disease_trait": "Freckles", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs12210050", + "strongest_snp_risk_allele": "rs12210050-T", + "or_or_beta": "0.21646", + "ci_text": "[0.15-0.29] unit increase", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "IRF4 - EXOC2", + "initial_sample_size": "4,984 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 459, + "study_accession": "GCST90255685", + "disease_trait": "Freckles", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs16891982", + "strongest_snp_risk_allele": "rs16891982-C", + "or_or_beta": "0.207484", + "ci_text": "[0.14-0.27] unit decrease", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,984 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 460, + "study_accession": "GCST90255685", + "disease_trait": "Freckles", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1805009", + "strongest_snp_risk_allele": "rs1805009-C", + "or_or_beta": "0.488185", + "ci_text": "[0.32-0.66] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "MC1R", + "initial_sample_size": "4,984 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 461, + "study_accession": "GCST90255685", + "disease_trait": "Freckles", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35412", + "strongest_snp_risk_allele": "rs35412-C", + "or_or_beta": "0.238181", + "ci_text": "[0.16-0.32] unit decrease", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,984 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 462, + "study_accession": "GCST90255685", + "disease_trait": "Freckles", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs570521611", + "strongest_snp_risk_allele": "rs570521611-G", + "or_or_beta": "0.35501", + "ci_text": "[0.24-0.47] unit decrease", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "LINC01871 - LINC00299", + "initial_sample_size": "4,984 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 463, + "study_accession": "GCST007841", + "disease_trait": "Height", + "study": "Leveraging Polygenic Functional Enrichment to Improve GWAS Power.", + "snps": "rs970498", + "strongest_snp_risk_allele": "rs970498-?", + "or_or_beta": null, + "ci_text": null, + "p_value": "4E-22", + "pvalue_mlog": "21.397940008672037", + "mapped_gene": "LINC02895", + "initial_sample_size": "approximately 458,000 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 464, + "study_accession": "GCST90255685", + "disease_trait": "Freckles", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs9392026", + "strongest_snp_risk_allele": "rs9392026-G", + "or_or_beta": "0.154428", + "ci_text": "[0.1-0.2] unit increase", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "IRF4 - EXOC2", + "initial_sample_size": "4,984 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 465, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs10080040", + "strongest_snp_risk_allele": "rs10080040-T", + "or_or_beta": "0.611122", + "ci_text": "[0.47-0.75] unit decrease", + "p_value": "5E-18", + "pvalue_mlog": "17.30102999566398", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 466, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1126809", + "strongest_snp_risk_allele": "rs1126809-A", + "or_or_beta": "0.164559", + "ci_text": "[0.11-0.22] unit increase", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "TYR", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 467, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs114803348", + "strongest_snp_risk_allele": "rs114803348-A", + "or_or_beta": "0.190242", + "ci_text": "[0.12-0.26] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 468, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "chr5:33933736", + "strongest_snp_risk_allele": "chr5:33933736-T", + "or_or_beta": "0.188026", + "ci_text": "[0.13-0.25] unit increase", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": null, + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 469, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs10636696", + "strongest_snp_risk_allele": "rs10636696-CTTTAAA", + "or_or_beta": "0.255018", + "ci_text": "[0.18-0.33] unit increase", + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 470, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1184030188", + "strongest_snp_risk_allele": "rs1184030188-C", + "or_or_beta": "0.310772", + "ci_text": "[0.22-0.41] unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 471, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs12203592", + "strongest_snp_risk_allele": "rs12203592-T", + "or_or_beta": "0.225739", + "ci_text": "[0.18-0.27] unit decrease", + "p_value": "8E-20", + "pvalue_mlog": "19.096910013008056", + "mapped_gene": "IRF4", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 472, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs12913832", + "strongest_snp_risk_allele": "rs12913832-G", + "or_or_beta": "0.109001", + "ci_text": "[0.074-0.144] unit decrease", + "p_value": "9E-10", + "pvalue_mlog": "9.045757490560675", + "mapped_gene": "HERC2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 473, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs12921177", + "strongest_snp_risk_allele": "rs12921177-A", + "or_or_beta": "0.305868", + "ci_text": "[0.21-0.4] unit decrease", + "p_value": "5E-10", + "pvalue_mlog": "9.301029995663981", + "mapped_gene": "CHMP1A", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 474, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs13177787", + "strongest_snp_risk_allele": "rs13177787-T", + "or_or_beta": "0.200371", + "ci_text": "[0.15-0.25] unit increase", + "p_value": "4E-15", + "pvalue_mlog": "14.397940008672037", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 475, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs16891982", + "strongest_snp_risk_allele": "rs16891982-C", + "or_or_beta": "0.371501", + "ci_text": "[0.33-0.42] unit increase", + "p_value": "3E-54", + "pvalue_mlog": "53.52287874528034", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 476, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1805007", + "strongest_snp_risk_allele": "rs1805007-T", + "or_or_beta": "0.515923", + "ci_text": "[0.41-0.63] unit decrease", + "p_value": "3E-20", + "pvalue_mlog": "19.522878745280337", + "mapped_gene": "MC1R", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 477, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1805009", + "strongest_snp_risk_allele": "rs1805009-C", + "or_or_beta": "0.386589", + "ci_text": "[0.27-0.51] unit decrease", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "MC1R", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 478, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1946267", + "strongest_snp_risk_allele": "rs1946267-A", + "or_or_beta": "0.1756", + "ci_text": "[0.13-0.22] unit increase", + "p_value": "2E-16", + "pvalue_mlog": "15.698970004336019", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 479, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2067350", + "strongest_snp_risk_allele": "rs2067350-CA", + "or_or_beta": "0.159919", + "ci_text": "[0.1-0.22] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 480, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2278007", + "strongest_snp_risk_allele": "rs2278007-G", + "or_or_beta": "0.446161", + "ci_text": "[0.34-0.55] unit increase", + "p_value": "9E-16", + "pvalue_mlog": "15.045757490560675", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 481, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2331343", + "strongest_snp_risk_allele": "rs2331343-G", + "or_or_beta": "0.201679", + "ci_text": "[0.13-0.27] unit increase", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 482, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2671427", + "strongest_snp_risk_allele": "rs2671427-T", + "or_or_beta": "0.0989432", + "ci_text": "[0.065-0.133] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "DUSP22 - IRF4", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 483, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs28431356", + "strongest_snp_risk_allele": "rs28431356-C", + "or_or_beta": "0.195714", + "ci_text": "[0.14-0.25] unit decrease", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "ANKRD11", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 484, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35404", + "strongest_snp_risk_allele": "rs35404-G", + "or_or_beta": "0.445258", + "ci_text": "[0.3-0.59] unit increase", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "RXFP3 - SLC45A2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 485, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35406", + "strongest_snp_risk_allele": "rs35406-G", + "or_or_beta": "0.299456", + "ci_text": "[0.23-0.37] unit increase", + "p_value": "2E-18", + "pvalue_mlog": "17.69897000433602", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 486, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35412", + "strongest_snp_risk_allele": "rs35412-C", + "or_or_beta": "0.34287", + "ci_text": "[0.29-0.4] unit increase", + "p_value": "8E-33", + "pvalue_mlog": "32.096910013008056", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 487, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35414", + "strongest_snp_risk_allele": "rs35414-T", + "or_or_beta": "0.113707", + "ci_text": "[0.078-0.15] unit increase", + "p_value": "5E-10", + "pvalue_mlog": "9.301029995663981", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 488, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4248913", + "strongest_snp_risk_allele": "rs4248913-A", + "or_or_beta": "0.28307", + "ci_text": "[0.19-0.38] unit decrease", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "DPEP1", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 489, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs6451047", + "strongest_snp_risk_allele": "rs6451047-T", + "or_or_beta": "0.434366", + "ci_text": "[0.28-0.59] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 490, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7380538", + "strongest_snp_risk_allele": "rs7380538-A", + "or_or_beta": "0.376842", + "ci_text": "[0.29-0.47] unit increase", + "p_value": "1E-15", + "pvalue_mlog": "15.0", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 491, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs74836424", + "strongest_snp_risk_allele": "rs74836424-T", + "or_or_beta": "0.34844", + "ci_text": "[0.23-0.46] unit decrease", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "ANKRD11", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 492, + "study_accession": "GCST90255687", + "disease_trait": "Ease of skin tanning", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs9292519", + "strongest_snp_risk_allele": "rs9292519-A", + "or_or_beta": "0.10118", + "ci_text": "[0.068-0.135] unit increase", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "RXFP3", + "initial_sample_size": "4,973 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 493, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs11742467", + "strongest_snp_risk_allele": "rs11742467-G", + "or_or_beta": "0.272542", + "ci_text": "[0.21-0.34] unit decrease", + "p_value": "5E-17", + "pvalue_mlog": "16.30102999566398", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 494, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1184030188", + "strongest_snp_risk_allele": "rs1184030188-C", + "or_or_beta": "0.532272", + "ci_text": "[0.39-0.68] unit decrease", + "p_value": "4E-13", + "pvalue_mlog": "12.397940008672037", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 495, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs12203592", + "strongest_snp_risk_allele": "rs12203592-T", + "or_or_beta": "0.242777", + "ci_text": "[0.17-0.32] unit increase", + "p_value": "8E-11", + "pvalue_mlog": "10.096910013008056", + "mapped_gene": "IRF4", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 496, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs12913832", + "strongest_snp_risk_allele": "rs12913832-G", + "or_or_beta": "0.201789", + "ci_text": "[0.15-0.25] unit increase", + "p_value": "4E-14", + "pvalue_mlog": "13.397940008672037", + "mapped_gene": "HERC2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 497, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs13177787", + "strongest_snp_risk_allele": "rs13177787-T", + "or_or_beta": "0.339493", + "ci_text": "[0.26-0.41] unit decrease", + "p_value": "1E-18", + "pvalue_mlog": "18.0", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 498, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1423300", + "strongest_snp_risk_allele": "rs1423300-A", + "or_or_beta": "0.159129", + "ci_text": "[0.1-0.22] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 499, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1491276502", + "strongest_snp_risk_allele": "rs1491276502-A", + "or_or_beta": "0.424908", + "ci_text": "[0.3-0.55] unit decrease", + "p_value": "9E-12", + "pvalue_mlog": "11.045757490560675", + "mapped_gene": "RXFP3 - SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 500, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs16891982", + "strongest_snp_risk_allele": "rs16891982-C", + "or_or_beta": "0.582142", + "ci_text": "[0.51-0.65] unit decrease", + "p_value": "1E-58", + "pvalue_mlog": "58.0", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 501, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1800407", + "strongest_snp_risk_allele": "rs1800407-T", + "or_or_beta": "0.235219", + "ci_text": "[0.15-0.32] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "OCA2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 502, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1833923", + "strongest_snp_risk_allele": "rs1833923-A", + "or_or_beta": "0.18864", + "ci_text": "[0.14-0.24] unit increase", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 503, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2331343", + "strongest_snp_risk_allele": "rs2331343-G", + "or_or_beta": "0.362901", + "ci_text": "[0.26-0.46] unit decrease", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 504, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2591719", + "strongest_snp_risk_allele": "rs2591719-A", + "or_or_beta": "0.335611", + "ci_text": "[0.24-0.43] unit decrease", + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 505, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs28431356", + "strongest_snp_risk_allele": "rs28431356-C", + "or_or_beta": "0.258661", + "ci_text": "[0.17-0.35] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "ANKRD11", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 506, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs34280294", + "strongest_snp_risk_allele": "rs34280294-T", + "or_or_beta": "0.354182", + "ci_text": "[0.24-0.47] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 507, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35404", + "strongest_snp_risk_allele": "rs35404-G", + "or_or_beta": "0.660897", + "ci_text": "[0.44-0.88] unit decrease", + "p_value": "6E-9", + "pvalue_mlog": "8.221848749616356", + "mapped_gene": "RXFP3 - SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 508, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35406", + "strongest_snp_risk_allele": "rs35406-G", + "or_or_beta": "0.501342", + "ci_text": "[0.4-0.6] unit decrease", + "p_value": "2E-22", + "pvalue_mlog": "21.69897000433602", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 509, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35412", + "strongest_snp_risk_allele": "rs35412-C", + "or_or_beta": "0.540753", + "ci_text": "[0.46-0.62] unit decrease", + "p_value": "6E-36", + "pvalue_mlog": "35.221848749616356", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 510, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs367554063", + "strongest_snp_risk_allele": "rs367554063-G", + "or_or_beta": "0.375231", + "ci_text": "[0.25-0.5] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 511, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs3776546", + "strongest_snp_risk_allele": "rs3776546-A", + "or_or_beta": "0.281626", + "ci_text": "[0.19-0.37] unit decrease", + "p_value": "7E-10", + "pvalue_mlog": "9.154901959985743", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 512, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs3797201", + "strongest_snp_risk_allele": "rs3797201-C", + "or_or_beta": "0.633905", + "ci_text": "[0.44-0.83] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 513, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs6451047", + "strongest_snp_risk_allele": "rs6451047-T", + "or_or_beta": "0.820993", + "ci_text": "[0.59-1.05] unit decrease", + "p_value": "1E-12", + "pvalue_mlog": "12.0", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 514, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs68047527", + "strongest_snp_risk_allele": "rs68047527-C", + "or_or_beta": "0.263733", + "ci_text": "[0.17-0.36] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "LINC00385", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 515, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7713279", + "strongest_snp_risk_allele": "rs7713279-G", + "or_or_beta": "0.303263", + "ci_text": "[0.24-0.36] unit decrease", + "p_value": "6E-23", + "pvalue_mlog": "22.221848749616356", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 516, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7729545", + "strongest_snp_risk_allele": "rs7729545-G", + "or_or_beta": "0.236835", + "ci_text": "[0.16-0.31] unit decrease", + "p_value": "5E-10", + "pvalue_mlog": "9.301029995663981", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 517, + "study_accession": "GCST90255686", + "disease_trait": "Ease of sunburn", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs9508664", + "strongest_snp_risk_allele": "rs9508664-A", + "or_or_beta": "0.230065", + "ci_text": "[0.16-0.3] unit increase", + "p_value": "8E-10", + "pvalue_mlog": "9.096910013008056", + "mapped_gene": "LINC00385 - KATNAL1", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 518, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs28784029", + "strongest_snp_risk_allele": "rs28784029-T", + "or_or_beta": "5.56351", + "ci_text": "[4.79-6.34] unit decrease", + "p_value": "2E-44", + "pvalue_mlog": "43.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 519, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2961906", + "strongest_snp_risk_allele": "rs2961906-A", + "or_or_beta": "2.7956", + "ci_text": "[1.87-3.72] unit increase", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 520, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs34022588", + "strongest_snp_risk_allele": "rs34022588-T", + "or_or_beta": "3.24448", + "ci_text": "[2.6-3.89] unit increase", + "p_value": "1E-22", + "pvalue_mlog": "22.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 521, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs34153565", + "strongest_snp_risk_allele": "rs34153565-T", + "or_or_beta": "3.20821", + "ci_text": "[2.33-4.09] unit increase", + "p_value": "1E-12", + "pvalue_mlog": "12.0", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 522, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs34280294", + "strongest_snp_risk_allele": "rs34280294-T", + "or_or_beta": "4.79431", + "ci_text": "[3.61-5.98] unit increase", + "p_value": "2E-15", + "pvalue_mlog": "14.698970004336019", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 523, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs34369918", + "strongest_snp_risk_allele": "rs34369918-C", + "or_or_beta": "3.21168", + "ci_text": "[2.55-3.87] unit increase", + "p_value": "3E-21", + "pvalue_mlog": "20.522878745280337", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 524, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs34823980", + "strongest_snp_risk_allele": "rs34823980-C", + "or_or_beta": "4.33863", + "ci_text": "[3.36-5.32] unit increase", + "p_value": "7E-18", + "pvalue_mlog": "17.154901959985743", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 525, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35400", + "strongest_snp_risk_allele": "rs35400-A", + "or_or_beta": "5.60072", + "ci_text": "[3.83-7.37] unit increase", + "p_value": "6E-10", + "pvalue_mlog": "9.221848749616356", + "mapped_gene": "RXFP3 - SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 526, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35404", + "strongest_snp_risk_allele": "rs35404-G", + "or_or_beta": "9.66116", + "ci_text": "[7.38-11.94] unit increase", + "p_value": "1E-16", + "pvalue_mlog": "16.0", + "mapped_gene": "RXFP3 - SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 527, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35406", + "strongest_snp_risk_allele": "rs35406-G", + "or_or_beta": "8.17197", + "ci_text": "[7.15-9.19] unit increase", + "p_value": "3E-54", + "pvalue_mlog": "53.52287874528034", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 528, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35412", + "strongest_snp_risk_allele": "rs35412-C", + "or_or_beta": "8.58179", + "ci_text": "[7.74-9.43] unit increase", + "p_value": "6E-85", + "pvalue_mlog": "84.22184874961636", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 529, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35414", + "strongest_snp_risk_allele": "rs35414-T", + "or_or_beta": "2.52931", + "ci_text": "[1.98-3.08] unit increase", + "p_value": "4E-19", + "pvalue_mlog": "18.397940008672037", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 530, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35795965", + "strongest_snp_risk_allele": "rs35795965-G", + "or_or_beta": "3.24873", + "ci_text": "[2.32-4.18] unit increase", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 531, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35960920", + "strongest_snp_risk_allele": "rs35960920-C", + "or_or_beta": "2.7895", + "ci_text": "[2.06-3.52] unit increase", + "p_value": "7E-14", + "pvalue_mlog": "13.154901959985743", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 532, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs36089417", + "strongest_snp_risk_allele": "rs36089417-C", + "or_or_beta": "3.39423", + "ci_text": "[2.29-4.5] unit increase", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "AMACR, C1QTNF3-AMACR", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 533, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs367554063", + "strongest_snp_risk_allele": "rs367554063-G", + "or_or_beta": "4.69114", + "ci_text": "[3.37-6.01] unit increase", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 534, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs369896246", + "strongest_snp_risk_allele": "rs369896246-A", + "or_or_beta": "2.81651", + "ci_text": "[2.03-3.6] unit increase", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "TYR - NOX4", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 535, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs370724688", + "strongest_snp_risk_allele": "rs370724688-C", + "or_or_beta": "2.27673", + "ci_text": "[1.69-2.86] unit decrease", + "p_value": "4E-14", + "pvalue_mlog": "13.397940008672037", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 536, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs373425948", + "strongest_snp_risk_allele": "rs373425948-T", + "or_or_beta": "3.98756", + "ci_text": "[3.06-4.92] unit increase", + "p_value": "6E-17", + "pvalue_mlog": "16.221848749616356", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 537, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs373468882", + "strongest_snp_risk_allele": "rs373468882-T", + "or_or_beta": "4.83034", + "ci_text": "[3.72-5.95] unit increase", + "p_value": "3E-17", + "pvalue_mlog": "16.522878745280337", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 538, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs3776546", + "strongest_snp_risk_allele": "rs3776546-A", + "or_or_beta": "3.94232", + "ci_text": "[3.03-4.86] unit increase", + "p_value": "3E-17", + "pvalue_mlog": "16.522878745280337", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 539, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs397854007", + "strongest_snp_risk_allele": "rs397854007-C", + "or_or_beta": "4.57391", + "ci_text": "[3.5-5.65] unit increase", + "p_value": "8E-17", + "pvalue_mlog": "16.096910013008056", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 540, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs397977468", + "strongest_snp_risk_allele": "rs397977468-CT", + "or_or_beta": "1.86499", + "ci_text": "[1.23-2.5] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "AMACR, C1QTNF3-AMACR", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 541, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4074658", + "strongest_snp_risk_allele": "rs4074658-C", + "or_or_beta": "1.82728", + "ci_text": "[1.31-2.34] unit decrease", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 542, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4248913", + "strongest_snp_risk_allele": "rs4248913-A", + "or_or_beta": "4.14625", + "ci_text": "[2.67-5.63] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "DPEP1", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 543, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4778137", + "strongest_snp_risk_allele": "rs4778137-G", + "or_or_beta": "2.42766", + "ci_text": "[1.9-2.96] unit increase", + "p_value": "3E-19", + "pvalue_mlog": "18.522878745280337", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 544, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4778138", + "strongest_snp_risk_allele": "rs4778138-G", + "or_or_beta": "3.79649", + "ci_text": "[3.23-4.36] unit increase", + "p_value": "6E-39", + "pvalue_mlog": "38.221848749616356", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 545, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4778241", + "strongest_snp_risk_allele": "rs4778241-A", + "or_or_beta": "3.1793", + "ci_text": "[2.63-3.73] unit increase", + "p_value": "3E-29", + "pvalue_mlog": "28.522878745280337", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 546, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs55950592", + "strongest_snp_risk_allele": "rs55950592-T", + "or_or_beta": "2.68257", + "ci_text": "[1.79-3.57] unit decrease", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "DPEP1", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 547, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs560973795", + "strongest_snp_risk_allele": "rs560973795-T", + "or_or_beta": "8.79865", + "ci_text": "[6.24-11.35] unit increase", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 548, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs56743903", + "strongest_snp_risk_allele": "rs56743903-A", + "or_or_beta": "3.05384", + "ci_text": "[2.11-4] unit increase", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 549, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs57525174", + "strongest_snp_risk_allele": "rs57525174-A", + "or_or_beta": "6.70788", + "ci_text": "[4.73-8.69] unit increase", + "p_value": "3E-11", + "pvalue_mlog": "10.522878745280337", + "mapped_gene": "RXFP3 - SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 550, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs58836608", + "strongest_snp_risk_allele": "rs58836608-G", + "or_or_beta": "2.13017", + "ci_text": "[1.44-2.82] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 551, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs58843292", + "strongest_snp_risk_allele": "rs58843292-A", + "or_or_beta": "3.21824", + "ci_text": "[2.53-3.91] unit increase", + "p_value": "6E-20", + "pvalue_mlog": "19.221848749616356", + "mapped_gene": "OCA2 - HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 552, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs62007489", + "strongest_snp_risk_allele": "rs62007489-T", + "or_or_beta": "3.17168", + "ci_text": "[2.46-3.89] unit decrease", + "p_value": "5E-18", + "pvalue_mlog": "17.30102999566398", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 553, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs62211613", + "strongest_snp_risk_allele": "rs62211613-C", + "or_or_beta": "4.3557", + "ci_text": "[2.81-5.9] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "NCOA6", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 554, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs6451047", + "strongest_snp_risk_allele": "rs6451047-T", + "or_or_beta": "11.5814", + "ci_text": "[9.25-13.91] unit increase", + "p_value": "3E-22", + "pvalue_mlog": "21.522878745280337", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 555, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs6451050", + "strongest_snp_risk_allele": "rs6451050-T", + "or_or_beta": "11.684", + "ci_text": "[8.71-14.66] unit increase", + "p_value": "2E-14", + "pvalue_mlog": "13.698970004336019", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 556, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs6497263", + "strongest_snp_risk_allele": "rs6497263-A", + "or_or_beta": "3.66024", + "ci_text": "[2.88-4.44] unit increase", + "p_value": "7E-20", + "pvalue_mlog": "19.154901959985743", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 557, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7116973", + "strongest_snp_risk_allele": "rs7116973-A", + "or_or_beta": "2.35284", + "ci_text": "[1.54-3.17] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "TYR", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 558, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7174027", + "strongest_snp_risk_allele": "rs7174027-A", + "or_or_beta": "3.2349", + "ci_text": "[2.61-3.86] unit increase", + "p_value": "1E-23", + "pvalue_mlog": "23.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 559, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7198386", + "strongest_snp_risk_allele": "rs7198386-C", + "or_or_beta": "1.62913", + "ci_text": "[1.1-2.16] unit increase", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "SPIRE2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 560, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs72714109", + "strongest_snp_risk_allele": "rs72714109-C", + "or_or_beta": "2.95108", + "ci_text": "[2.32-3.58] unit increase", + "p_value": "5E-20", + "pvalue_mlog": "19.30102999566398", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 561, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs73077127", + "strongest_snp_risk_allele": "rs73077127-C", + "or_or_beta": "7.79026", + "ci_text": "[5.75-9.83] unit increase", + "p_value": "8E-14", + "pvalue_mlog": "13.096910013008056", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 562, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs745333093", + "strongest_snp_risk_allele": "rs745333093-A", + "or_or_beta": "3.48002", + "ci_text": "[2.28-4.68] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "HERC2 - HERC2P1", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 563, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7494942", + "strongest_snp_risk_allele": "rs7494942-A", + "or_or_beta": "4.17549", + "ci_text": "[3.65-4.7] unit increase", + "p_value": "9E-54", + "pvalue_mlog": "53.045757490560675", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 564, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs752243327", + "strongest_snp_risk_allele": "rs752243327-AAT", + "or_or_beta": "2.57314", + "ci_text": "[1.7-3.44] unit increase", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 565, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs755407864", + "strongest_snp_risk_allele": "rs755407864-CA", + "or_or_beta": "4.57617", + "ci_text": "[3.48-5.68] unit decrease", + "p_value": "4E-16", + "pvalue_mlog": "15.397940008672037", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 566, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7702361", + "strongest_snp_risk_allele": "rs7702361-A", + "or_or_beta": "2.01803", + "ci_text": "[1.49-2.54] unit decrease", + "p_value": "5E-14", + "pvalue_mlog": "13.301029995663981", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 567, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7713279", + "strongest_snp_risk_allele": "rs7713279-G", + "or_or_beta": "4.45581", + "ci_text": "[3.84-5.07] unit increase", + "p_value": "2E-45", + "pvalue_mlog": "44.69897000433602", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 568, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs78211086", + "strongest_snp_risk_allele": "rs78211086-C", + "or_or_beta": "5.17362", + "ci_text": "[3.45-6.9] unit increase", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 569, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs79014396", + "strongest_snp_risk_allele": "rs79014396-T", + "or_or_beta": "6.05053", + "ci_text": "[4.24-7.86] unit increase", + "p_value": "6E-11", + "pvalue_mlog": "10.221848749616356", + "mapped_gene": "RXFP3", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 570, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs79743671", + "strongest_snp_risk_allele": "rs79743671-A", + "or_or_beta": "2.36731", + "ci_text": "[1.55-3.18] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 571, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs869190367", + "strongest_snp_risk_allele": "rs869190367-C", + "or_or_beta": "4.23403", + "ci_text": "[3.26-5.2] unit increase", + "p_value": "1E-17", + "pvalue_mlog": "17.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 572, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs895829", + "strongest_snp_risk_allele": "rs895829-C", + "or_or_beta": "3.353", + "ci_text": "[2.82-3.89] unit increase", + "p_value": "3E-34", + "pvalue_mlog": "33.52287874528034", + "mapped_gene": "OCA2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 573, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "chr15:28287618", + "strongest_snp_risk_allele": "chr15:28287618-CAA", + "or_or_beta": "3.12189", + "ci_text": "[2.35-3.89] unit increase", + "p_value": "2E-15", + "pvalue_mlog": "14.698970004336019", + "mapped_gene": null, + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 574, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "chr15:28302952", + "strongest_snp_risk_allele": "chr15:28302952-G", + "or_or_beta": "3.46418", + "ci_text": "[2.84-4.09] unit increase", + "p_value": "2E-27", + "pvalue_mlog": "26.69897000433602", + "mapped_gene": null, + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 575, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "chr15:28524761", + "strongest_snp_risk_allele": "chr15:28524761-CCACACACA", + "or_or_beta": "4.63128", + "ci_text": "[3.66-5.6] unit increase", + "p_value": "9E-21", + "pvalue_mlog": "20.045757490560675", + "mapped_gene": null, + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 576, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "chr16:90059336", + "strongest_snp_risk_allele": "chr16:90059336-G", + "or_or_beta": "2.88157", + "ci_text": "[1.91-3.85] unit decrease", + "p_value": "6E-9", + "pvalue_mlog": "8.221848749616356", + "mapped_gene": null, + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 577, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "chr16:90103117", + "strongest_snp_risk_allele": "chr16:90103117-A", + "or_or_beta": "1.46215", + "ci_text": "[0.94-1.98] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": null, + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 578, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "chr5:33933736", + "strongest_snp_risk_allele": "chr5:33933736-T", + "or_or_beta": "4.14423", + "ci_text": "[3.2-5.09] unit increase", + "p_value": "1E-17", + "pvalue_mlog": "17.0", + "mapped_gene": null, + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 579, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "chr5:33996743", + "strongest_snp_risk_allele": "chr5:33996743-TGTGGTAGTGCG", + "or_or_beta": "5.48014", + "ci_text": "[3.61-7.35] unit increase", + "p_value": "9E-9", + "pvalue_mlog": "8.045757490560675", + "mapped_gene": null, + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 580, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs10080040", + "strongest_snp_risk_allele": "rs10080040-T", + "or_or_beta": "9.32618", + "ci_text": "[7.92-10.73] unit increase", + "p_value": "5E-38", + "pvalue_mlog": "37.30102999566398", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 581, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35934407", + "strongest_snp_risk_allele": "rs35934407-A", + "or_or_beta": "0.23109", + "ci_text": "[0.16-0.3] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 582, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs10461708", + "strongest_snp_risk_allele": "rs10461708-A", + "or_or_beta": "1.99845", + "ci_text": "[1.47-2.52] unit increase", + "p_value": "1E-13", + "pvalue_mlog": "13.0", + "mapped_gene": "RXFP3 - SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 583, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs111372186", + "strongest_snp_risk_allele": "rs111372186-A", + "or_or_beta": "5.87436", + "ci_text": "[3.91-7.83] unit increase", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 584, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs111433258", + "strongest_snp_risk_allele": "rs111433258-G", + "or_or_beta": "3.83718", + "ci_text": "[3.19-4.49] unit increase", + "p_value": "1E-30", + "pvalue_mlog": "30.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 585, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs111458470", + "strongest_snp_risk_allele": "rs111458470-A", + "or_or_beta": "3.83211", + "ci_text": "[3.28-4.38] unit increase", + "p_value": "8E-42", + "pvalue_mlog": "41.096910013008056", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 586, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1126809", + "strongest_snp_risk_allele": "rs1126809-A", + "or_or_beta": "1.96386", + "ci_text": "[1.36-2.56] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "TYR", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 587, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs11324616", + "strongest_snp_risk_allele": "rs11324616-GA", + "or_or_beta": "3.95892", + "ci_text": "[3.29-4.63] unit increase", + "p_value": "2E-30", + "pvalue_mlog": "29.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 588, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs11365574", + "strongest_snp_risk_allele": "rs11365574-CT", + "or_or_beta": "4.46927", + "ci_text": "[3.34-5.6] unit increase", + "p_value": "1E-14", + "pvalue_mlog": "14.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 589, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs11396433", + "strongest_snp_risk_allele": "rs11396433-T", + "or_or_beta": "3.33236", + "ci_text": "[2.41-4.26] unit increase", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 590, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs11442532", + "strongest_snp_risk_allele": "rs11442532-CT", + "or_or_beta": "3.00179", + "ci_text": "[2.1-3.9] unit increase", + "p_value": "8E-11", + "pvalue_mlog": "10.096910013008056", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 591, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs114803348", + "strongest_snp_risk_allele": "rs114803348-A", + "or_or_beta": "2.47665", + "ci_text": "[1.79-3.16] unit decrease", + "p_value": "1E-12", + "pvalue_mlog": "12.0", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 592, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs116074720", + "strongest_snp_risk_allele": "rs116074720-A", + "or_or_beta": "2.62864", + "ci_text": "[2.11-3.15] unit decrease", + "p_value": "1E-22", + "pvalue_mlog": "22.0", + "mapped_gene": "ADAMTS12", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 593, + "study_accession": "GCST90255688", + "disease_trait": "Skin phototype score", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs11636232", + "strongest_snp_risk_allele": "rs11636232-T", + "or_or_beta": "5.83834", + "ci_text": "[5.15-6.53] unit decrease", + "p_value": "1E-59", + "pvalue_mlog": "59.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,933 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 594, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs35409", + "strongest_snp_risk_allele": "rs35409-G", + "or_or_beta": "0.224992", + "ci_text": "[0.16-0.29] unit increase", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 595, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs36179052", + "strongest_snp_risk_allele": "rs36179052-G", + "or_or_beta": "0.144551", + "ci_text": "[0.094-0.195] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "APBA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 596, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs373425948", + "strongest_snp_risk_allele": "rs373425948-T", + "or_or_beta": "0.560708", + "ci_text": "[0.49-0.64] unit increase", + "p_value": "3E-47", + "pvalue_mlog": "46.52287874528034", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 597, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs373468882", + "strongest_snp_risk_allele": "rs373468882-T", + "or_or_beta": "0.546008", + "ci_text": "[0.45-0.64] unit increase", + "p_value": "2E-31", + "pvalue_mlog": "30.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 598, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs397854007", + "strongest_snp_risk_allele": "rs397854007-C", + "or_or_beta": "0.626451", + "ci_text": "[0.54-0.71] unit increase", + "p_value": "2E-44", + "pvalue_mlog": "43.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 599, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs398113268", + "strongest_snp_risk_allele": "rs398113268-GT", + "or_or_beta": "0.144303", + "ci_text": "[0.094-0.195] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "LURAP1L-AS1", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 600, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4074658", + "strongest_snp_risk_allele": "rs4074658-C", + "or_or_beta": "0.285344", + "ci_text": "[0.24-0.33] unit decrease", + "p_value": "3E-40", + "pvalue_mlog": "39.52287874528034", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 601, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4238497", + "strongest_snp_risk_allele": "rs4238497-A", + "or_or_beta": "0.400186", + "ci_text": "[0.29-0.51] unit decrease", + "p_value": "7E-13", + "pvalue_mlog": "12.154901959985743", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 602, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4778137", + "strongest_snp_risk_allele": "rs4778137-G", + "or_or_beta": "0.306655", + "ci_text": "[0.26-0.35] unit increase", + "p_value": "7E-44", + "pvalue_mlog": "43.15490195998574", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 603, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4778138", + "strongest_snp_risk_allele": "rs4778138-G", + "or_or_beta": "0.549645", + "ci_text": "[0.51-0.59] unit increase", + "p_value": "7E-122", + "pvalue_mlog": "121.15490195998575", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 604, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs4778241", + "strongest_snp_risk_allele": "rs4778241-A", + "or_or_beta": "0.530439", + "ci_text": "[0.49-0.57] unit increase", + "p_value": "3E-120", + "pvalue_mlog": "119.52287874528034", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 605, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs529312329", + "strongest_snp_risk_allele": "rs529312329-T", + "or_or_beta": "0.443164", + "ci_text": "[0.29-0.6] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 606, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs533994436", + "strongest_snp_risk_allele": "rs533994436-C", + "or_or_beta": "0.943951", + "ci_text": "[0.74-1.15] unit decrease", + "p_value": "8E-20", + "pvalue_mlog": "19.096910013008056", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 607, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs548590936", + "strongest_snp_risk_allele": "rs548590936-T", + "or_or_beta": "0.228429", + "ci_text": "[0.15-0.31] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "MPHOSPH10P7 - GOLGA8F", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 608, + "study_accession": "GCST90255478", + "disease_trait": "Height", + "study": "Genome-wide study on 72,298 individuals in Korean biobank data for 76 traits.", + "snps": "chr4:17849607", + "strongest_snp_risk_allele": "chr4:17849607-?", + "or_or_beta": "0.06381", + "ci_text": "[0.049-0.079] unit decrease", + "p_value": "5E-17", + "pvalue_mlog": "16.30102999566398", + "mapped_gene": null, + "initial_sample_size": "251,000 East Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 609, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs556360317", + "strongest_snp_risk_allele": "rs556360317-T", + "or_or_beta": "0.486142", + "ci_text": "[0.33-0.65] unit increase", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 610, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs56743903", + "strongest_snp_risk_allele": "rs56743903-A", + "or_or_beta": "0.467037", + "ci_text": "[0.39-0.54] unit increase", + "p_value": "1E-32", + "pvalue_mlog": "32.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 611, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs575299612", + "strongest_snp_risk_allele": "rs575299612-CA", + "or_or_beta": "0.361426", + "ci_text": "[0.28-0.44] unit increase", + "p_value": "6E-18", + "pvalue_mlog": "17.221848749616356", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 612, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs5811535", + "strongest_snp_risk_allele": "rs5811535-AT", + "or_or_beta": "0.53277", + "ci_text": "[0.41-0.65] unit increase", + "p_value": "4E-18", + "pvalue_mlog": "17.397940008672037", + "mapped_gene": "OCA2 - HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 613, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs58836608", + "strongest_snp_risk_allele": "rs58836608-G", + "or_or_beta": "0.313607", + "ci_text": "[0.26-0.37] unit increase", + "p_value": "8E-28", + "pvalue_mlog": "27.096910013008056", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 614, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs58843292", + "strongest_snp_risk_allele": "rs58843292-A", + "or_or_beta": "0.494042", + "ci_text": "[0.44-0.55] unit increase", + "p_value": "8E-67", + "pvalue_mlog": "66.09691001300806", + "mapped_gene": "OCA2 - HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 615, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs62007489", + "strongest_snp_risk_allele": "rs62007489-T", + "or_or_beta": "0.482686", + "ci_text": "[0.42-0.54] unit decrease", + "p_value": "7E-59", + "pvalue_mlog": "58.15490195998574", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 616, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs62479525", + "strongest_snp_risk_allele": "rs62479525-C", + "or_or_beta": "0.195578", + "ci_text": "[0.13-0.26] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "NUP205", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 617, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs6497233", + "strongest_snp_risk_allele": "rs6497233-T", + "or_or_beta": "0.15149", + "ci_text": "[0.1-0.2] unit decrease", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 618, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7025678", + "strongest_snp_risk_allele": "rs7025678-A", + "or_or_beta": "0.126632", + "ci_text": "[0.083-0.17] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LURAP1L-AS1", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 619, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs111433258", + "strongest_snp_risk_allele": "rs111433258-G", + "or_or_beta": "0.543272", + "ci_text": "[0.49-0.59] unit increase", + "p_value": "2E-90", + "pvalue_mlog": "89.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 620, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs111446662", + "strongest_snp_risk_allele": "rs111446662-T", + "or_or_beta": "0.491405", + "ci_text": "[0.4-0.58] unit increase", + "p_value": "6E-28", + "pvalue_mlog": "27.221848749616356", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 621, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs111458470", + "strongest_snp_risk_allele": "rs111458470-A", + "or_or_beta": "0.581791", + "ci_text": "[0.54-0.62] unit increase", + "p_value": "3E-145", + "pvalue_mlog": "144.52287874528034", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 622, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs111593432", + "strongest_snp_risk_allele": "rs111593432-G", + "or_or_beta": "0.688656", + "ci_text": "[0.48-0.9] unit increase", + "p_value": "8E-11", + "pvalue_mlog": "10.096910013008056", + "mapped_gene": "OCA2 - HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 623, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs112483884", + "strongest_snp_risk_allele": "rs112483884-C", + "or_or_beta": "0.24379", + "ci_text": "[0.17-0.31] unit increase", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 624, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1129038", + "strongest_snp_risk_allele": "rs1129038-T", + "or_or_beta": "0.982798", + "ci_text": "[0.95-1.02] unit decrease", + "p_value": "1E-523", + "pvalue_mlog": "523.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 625, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs11324616", + "strongest_snp_risk_allele": "rs11324616-GA", + "or_or_beta": "0.551532", + "ci_text": "[0.5-0.61] unit increase", + "p_value": "2E-86", + "pvalue_mlog": "85.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 626, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs11365574", + "strongest_snp_risk_allele": "rs11365574-CT", + "or_or_beta": "0.541993", + "ci_text": "[0.45-0.63] unit increase", + "p_value": "2E-30", + "pvalue_mlog": "29.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 627, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs11396433", + "strongest_snp_risk_allele": "rs11396433-T", + "or_or_beta": "0.469668", + "ci_text": "[0.39-0.54] unit increase", + "p_value": "7E-34", + "pvalue_mlog": "33.15490195998574", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 628, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs115000158", + "strongest_snp_risk_allele": "rs115000158-A", + "or_or_beta": "0.523761", + "ci_text": "[0.39-0.66] unit increase", + "p_value": "1E-13", + "pvalue_mlog": "13.0", + "mapped_gene": "OCA2 - HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 629, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1157572508", + "strongest_snp_risk_allele": "rs1157572508-TGATAGATA", + "or_or_beta": "0.248924", + "ci_text": "[0.17-0.33] unit decrease", + "p_value": "7E-10", + "pvalue_mlog": "9.154901959985743", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 630, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs11636232", + "strongest_snp_risk_allele": "rs11636232-T", + "or_or_beta": "0.85448", + "ci_text": "[0.8-0.91] unit decrease", + "p_value": "3E-197", + "pvalue_mlog": "196.52287874528034", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 631, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs116879078", + "strongest_snp_risk_allele": "rs116879078-T", + "or_or_beta": "0.426668", + "ci_text": "[0.31-0.54] unit increase", + "p_value": "1E-12", + "pvalue_mlog": "12.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 632, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs117219845", + "strongest_snp_risk_allele": "rs117219845-T", + "or_or_beta": "0.41247", + "ci_text": "[0.32-0.5] unit increase", + "p_value": "2E-18", + "pvalue_mlog": "17.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 633, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs117325217", + "strongest_snp_risk_allele": "rs117325217-T", + "or_or_beta": "0.53636", + "ci_text": "[0.45-0.62] unit increase", + "p_value": "5E-37", + "pvalue_mlog": "36.30102999566398", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 634, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs117801799", + "strongest_snp_risk_allele": "rs117801799-A", + "or_or_beta": "0.335909", + "ci_text": "[0.22-0.45] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 635, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs118141530", + "strongest_snp_risk_allele": "rs118141530-G", + "or_or_beta": "0.53796", + "ci_text": "[0.44-0.64] unit increase", + "p_value": "8E-25", + "pvalue_mlog": "24.096910013008056", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 636, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs12203592", + "strongest_snp_risk_allele": "rs12203592-T", + "or_or_beta": "0.209556", + "ci_text": "[0.15-0.27] unit decrease", + "p_value": "3E-11", + "pvalue_mlog": "10.522878745280337", + "mapped_gene": "IRF4", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 637, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs138862869", + "strongest_snp_risk_allele": "rs138862869-AAATG", + "or_or_beta": "0.415655", + "ci_text": "[0.37-0.46] unit increase", + "p_value": "3E-76", + "pvalue_mlog": "75.52287874528034", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 638, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs140159633", + "strongest_snp_risk_allele": "rs140159633-T", + "or_or_beta": "0.241416", + "ci_text": "[0.18-0.3] unit decrease", + "p_value": "2E-14", + "pvalue_mlog": "13.698970004336019", + "mapped_gene": "APBA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 639, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs142046335", + "strongest_snp_risk_allele": "rs142046335-G", + "or_or_beta": "0.684916", + "ci_text": "[0.58-0.79] unit decrease", + "p_value": "2E-37", + "pvalue_mlog": "36.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 640, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs144244730", + "strongest_snp_risk_allele": "rs144244730-T", + "or_or_beta": "0.34756", + "ci_text": "[0.23-0.46] unit increase", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 641, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs144864205", + "strongest_snp_risk_allele": "rs144864205-A", + "or_or_beta": "0.616333", + "ci_text": "[0.45-0.78] unit increase", + "p_value": "7E-13", + "pvalue_mlog": "12.154901959985743", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 642, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1449123735", + "strongest_snp_risk_allele": "rs1449123735-T", + "or_or_beta": "0.334497", + "ci_text": "[0.23-0.44] unit increase", + "p_value": "6E-10", + "pvalue_mlog": "9.221848749616356", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 643, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs146550637", + "strongest_snp_risk_allele": "rs146550637-T", + "or_or_beta": "0.599414", + "ci_text": "[0.45-0.75] unit increase", + "p_value": "3E-15", + "pvalue_mlog": "14.522878745280337", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 644, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs148885596", + "strongest_snp_risk_allele": "rs148885596-G", + "or_or_beta": "0.299678", + "ci_text": "[0.23-0.36] unit decrease", + "p_value": "3E-19", + "pvalue_mlog": "18.522878745280337", + "mapped_gene": "GOLGA6L7 - APBA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 645, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs1491544065", + "strongest_snp_risk_allele": "rs1491544065-CA", + "or_or_beta": "0.34391", + "ci_text": "[0.27-0.42] unit increase", + "p_value": "1E-18", + "pvalue_mlog": "18.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 646, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs150231163", + "strongest_snp_risk_allele": "rs150231163-C", + "or_or_beta": "0.544393", + "ci_text": "[0.43-0.66] unit increase", + "p_value": "1E-21", + "pvalue_mlog": "21.0", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 647, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs150287021", + "strongest_snp_risk_allele": "rs150287021-T", + "or_or_beta": "0.416048", + "ci_text": "[0.3-0.53] unit increase", + "p_value": "8E-13", + "pvalue_mlog": "12.096910013008056", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 648, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs150568801", + "strongest_snp_risk_allele": "rs150568801-T", + "or_or_beta": "0.650865", + "ci_text": "[0.48-0.82] unit increase", + "p_value": "7E-14", + "pvalue_mlog": "13.154901959985743", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 649, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs150763518", + "strongest_snp_risk_allele": "rs150763518-G", + "or_or_beta": "0.385548", + "ci_text": "[0.33-0.44] unit increase", + "p_value": "2E-43", + "pvalue_mlog": "42.69897000433602", + "mapped_gene": "OCA2 - HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 650, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs16891982", + "strongest_snp_risk_allele": "rs16891982-C", + "or_or_beta": "0.257568", + "ci_text": "[0.2-0.32] unit increase", + "p_value": "5E-17", + "pvalue_mlog": "16.30102999566398", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 651, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs17652091", + "strongest_snp_risk_allele": "rs17652091-A", + "or_or_beta": "0.185783", + "ci_text": "[0.13-0.24] unit decrease", + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 652, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs192494731", + "strongest_snp_risk_allele": "rs192494731-T", + "or_or_beta": "0.654723", + "ci_text": "[0.44-0.87] unit increase", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 653, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs200426972", + "strongest_snp_risk_allele": "rs200426972-T", + "or_or_beta": "0.413979", + "ci_text": "[0.34-0.48] unit increase", + "p_value": "4E-31", + "pvalue_mlog": "30.397940008672037", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 654, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs200980383", + "strongest_snp_risk_allele": "rs200980383-A", + "or_or_beta": "0.503029", + "ci_text": "[0.35-0.66] unit increase", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 655, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs201911192", + "strongest_snp_risk_allele": "rs201911192-CA", + "or_or_beta": "0.326055", + "ci_text": "[0.23-0.43] unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 656, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs202126943", + "strongest_snp_risk_allele": "rs202126943-T", + "or_or_beta": "0.231308", + "ci_text": "[0.17-0.29] unit increase", + "p_value": "2E-15", + "pvalue_mlog": "14.698970004336019", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 657, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs202195884", + "strongest_snp_risk_allele": "rs202195884-C", + "or_or_beta": "0.415444", + "ci_text": "[0.27-0.56] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 658, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2122005", + "strongest_snp_risk_allele": "rs2122005-A", + "or_or_beta": "0.155543", + "ci_text": "[0.11-0.21] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 659, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2305252", + "strongest_snp_risk_allele": "rs2305252-T", + "or_or_beta": "0.24072", + "ci_text": "[0.19-0.29] unit increase", + "p_value": "3E-21", + "pvalue_mlog": "20.522878745280337", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 660, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2346098", + "strongest_snp_risk_allele": "rs2346098-A", + "or_or_beta": "0.385577", + "ci_text": "[0.28-0.49] unit increase", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 661, + "study_accession": "GCST90255478", + "disease_trait": "Height", + "study": "Genome-wide study on 72,298 individuals in Korean biobank data for 76 traits.", + "snps": "chr4:17880416", + "strongest_snp_risk_allele": "chr4:17880416-?", + "or_or_beta": "0.05784", + "ci_text": "[0.054-0.062] unit decrease", + "p_value": "3E-173", + "pvalue_mlog": "172.52287874528034", + "mapped_gene": null, + "initial_sample_size": "251,000 East Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 662, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2525919", + "strongest_snp_risk_allele": "rs2525919-T", + "or_or_beta": "0.555648", + "ci_text": "[0.5-0.61] unit increase", + "p_value": "7E-97", + "pvalue_mlog": "96.15490195998575", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 663, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs2594903", + "strongest_snp_risk_allele": "rs2594903-G", + "or_or_beta": "0.17443", + "ci_text": "[0.12-0.23] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 664, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs28587058", + "strongest_snp_risk_allele": "rs28587058-C", + "or_or_beta": "0.547847", + "ci_text": "[0.42-0.68] unit increase", + "p_value": "2E-16", + "pvalue_mlog": "15.698970004336019", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 665, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs28784029", + "strongest_snp_risk_allele": "rs28784029-T", + "or_or_beta": "0.833056", + "ci_text": "[0.77-0.89] unit decrease", + "p_value": "2E-150", + "pvalue_mlog": "149.69897000433602", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 666, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs34022588", + "strongest_snp_risk_allele": "rs34022588-T", + "or_or_beta": "0.424355", + "ci_text": "[0.37-0.48] unit increase", + "p_value": "1E-55", + "pvalue_mlog": "55.0", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 667, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs34369918", + "strongest_snp_risk_allele": "rs34369918-C", + "or_or_beta": "0.377395", + "ci_text": "[0.32-0.43] unit increase", + "p_value": "2E-42", + "pvalue_mlog": "41.69897000433602", + "mapped_gene": "OCA2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 668, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs34632582", + "strongest_snp_risk_allele": "rs34632582-CA", + "or_or_beta": "0.413613", + "ci_text": "[0.29-0.54] unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 669, + "study_accession": "GCST90255684", + "disease_trait": "Eye color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs34823980", + "strongest_snp_risk_allele": "rs34823980-C", + "or_or_beta": "0.60983", + "ci_text": "[0.53-0.69] unit increase", + "p_value": "6E-50", + "pvalue_mlog": "49.221848749616356", + "mapped_gene": "HERC2", + "initial_sample_size": "4,987 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 670, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs17071968", + "strongest_snp_risk_allele": "rs17071968-C", + "or_or_beta": "0.0104", + "ci_text": "[0.0086-0.0122] unit increase", + "p_value": "4E-33", + "pvalue_mlog": "32.39794000867204", + "mapped_gene": "CSMD1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 671, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs7817815", + "strongest_snp_risk_allele": "rs7817815-C", + "or_or_beta": "0.0066", + "ci_text": "[0.005-0.0082] unit decrease", + "p_value": "5E-16", + "pvalue_mlog": "15.301029995663981", + "mapped_gene": "RPL23AP54 - RN7SKP159", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 672, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs2897843", + "strongest_snp_risk_allele": "rs2897843-G", + "or_or_beta": "0.0057", + "ci_text": "[0.0041-0.0073] unit increase", + "p_value": "1E-13", + "pvalue_mlog": "13.0", + "mapped_gene": "RPL23AP54 - RN7SKP159", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 673, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs12550299", + "strongest_snp_risk_allele": "rs12550299-C", + "or_or_beta": "0.0114", + "ci_text": "[0.0096-0.0132] unit increase", + "p_value": "1E-37", + "pvalue_mlog": "37.0", + "mapped_gene": "MCPH1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 674, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs1984857", + "strongest_snp_risk_allele": "rs1984857-C", + "or_or_beta": "0.0073", + "ci_text": "[0.0061-0.0085] unit increase", + "p_value": "2E-30", + "pvalue_mlog": "29.69897000433602", + "mapped_gene": "ANGPT2, MCPH1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 675, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs2515514", + "strongest_snp_risk_allele": "rs2515514-A", + "or_or_beta": "0.0087", + "ci_text": "[0.0069-0.0105] unit increase", + "p_value": "1E-23", + "pvalue_mlog": "23.0", + "mapped_gene": "MCPH1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 676, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs12381471", + "strongest_snp_risk_allele": "rs12381471-A", + "or_or_beta": "0.0069", + "ci_text": "[0.0045-0.0093] unit decrease", + "p_value": "8E-9", + "pvalue_mlog": "8.096910013008056", + "mapped_gene": "AGPAT5 - XKR5", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 677, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs10097659", + "strongest_snp_risk_allele": "rs10097659-G", + "or_or_beta": "0.0073", + "ci_text": "[0.0059-0.0087] unit increase", + "p_value": "4E-27", + "pvalue_mlog": "26.397940008672037", + "mapped_gene": "PRAG1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 678, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs2945878", + "strongest_snp_risk_allele": "rs2945878-C", + "or_or_beta": "0.0089", + "ci_text": "[0.0069-0.0109] unit decrease", + "p_value": "1E-17", + "pvalue_mlog": "17.0", + "mapped_gene": "PRAG1 - LINC02949", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 679, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs11249878", + "strongest_snp_risk_allele": "rs11249878-C", + "or_or_beta": "0.0082", + "ci_text": "[0.0068-0.0096] unit decrease", + "p_value": "1E-34", + "pvalue_mlog": "34.0", + "mapped_gene": "RN7SL178P - CLDN23", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 680, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs565169", + "strongest_snp_risk_allele": "rs565169-C", + "or_or_beta": "0.0106", + "ci_text": "[0.009-0.0122] unit increase", + "p_value": "1E-37", + "pvalue_mlog": "37.0", + "mapped_gene": "CLDN23 - MFHAS1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 681, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs429433", + "strongest_snp_risk_allele": "rs429433-A", + "or_or_beta": "0.0228", + "ci_text": "[0.02-0.026] unit increase", + "p_value": "8E-49", + "pvalue_mlog": "48.096910013008056", + "mapped_gene": "MFHAS1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 682, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs2956243", + "strongest_snp_risk_allele": "rs2956243-A", + "or_or_beta": "0.0055", + "ci_text": "[0.0035-0.0075] unit decrease", + "p_value": "7E-8", + "pvalue_mlog": "7.154901959985743", + "mapped_gene": "ERI1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 683, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs19334", + "strongest_snp_risk_allele": "rs19334-A", + "or_or_beta": "0.0095", + "ci_text": "[0.0081-0.0109] unit decrease", + "p_value": "1E-45", + "pvalue_mlog": "45.0", + "mapped_gene": "PPP1R3B-DT", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 684, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs17706711", + "strongest_snp_risk_allele": "rs17706711-T", + "or_or_beta": "0.0124", + "ci_text": "[0.0099-0.0149] unit increase", + "p_value": "3E-22", + "pvalue_mlog": "21.522878745280337", + "mapped_gene": "PPP1R3B-DT", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 685, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs329992", + "strongest_snp_risk_allele": "rs329992-A", + "or_or_beta": "0.0121", + "ci_text": "[0.0096-0.0146] unit decrease", + "p_value": "3E-21", + "pvalue_mlog": "20.522878745280337", + "mapped_gene": "PPP1R3B-DT", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 686, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs180426", + "strongest_snp_risk_allele": "rs180426-A", + "or_or_beta": "0.0157", + "ci_text": "[0.014-0.017] unit increase", + "p_value": "4E-109", + "pvalue_mlog": "108.39794000867204", + "mapped_gene": "SLC38A4, SLC38A4-AS1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 687, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs180431", + "strongest_snp_risk_allele": "rs180431-A", + "or_or_beta": "0.0188", + "ci_text": "[0.015-0.023] unit increase", + "p_value": "3E-23", + "pvalue_mlog": "22.522878745280337", + "mapped_gene": "SLC38A4-AS1, SLC38A4", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 688, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs17691793", + "strongest_snp_risk_allele": "rs17691793-A", + "or_or_beta": "0.0227", + "ci_text": "[0.02-0.025] unit decrease", + "p_value": "2E-60", + "pvalue_mlog": "59.69897000433602", + "mapped_gene": "SLC38A4-AS1 - AMIGO2", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 689, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs7975211", + "strongest_snp_risk_allele": "rs7975211-A", + "or_or_beta": "0.0118", + "ci_text": "[0.011-0.013] unit decrease", + "p_value": "1E-76", + "pvalue_mlog": "76.0", + "mapped_gene": "SLC38A4-AS1 - AMIGO2", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 690, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs12306599", + "strongest_snp_risk_allele": "rs12306599-T", + "or_or_beta": "0.0311", + "ci_text": "[0.028-0.034] unit increase", + "p_value": "4E-112", + "pvalue_mlog": "111.39794000867204", + "mapped_gene": "SLC38A4-AS1 - AMIGO2", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 691, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs832741", + "strongest_snp_risk_allele": "rs832741-T", + "or_or_beta": "0.0047", + "ci_text": "[0.0035-0.0059] unit increase", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "PCED1B-AS1, PCED1B", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 692, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs7955374", + "strongest_snp_risk_allele": "rs7955374-T", + "or_or_beta": "0.0074", + "ci_text": "[0.0054-0.0094] unit increase", + "p_value": "4E-14", + "pvalue_mlog": "13.397940008672037", + "mapped_gene": "STBD1P1 - RPAP3", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 693, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs12820931", + "strongest_snp_risk_allele": "rs12820931-T", + "or_or_beta": "0.0066", + "ci_text": "[0.0042-0.009] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "HDAC7", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 694, + "study_accession": "GCST90245848", + "disease_trait": "Height", + "study": "A saturated map of common genetic variants associated with human height.", + "snps": "rs12721427", + "strongest_snp_risk_allele": "rs12721427-T", + "or_or_beta": "0.0203", + "ci_text": "[0.018-0.023] unit decrease", + "p_value": "6E-61", + "pvalue_mlog": "60.221848749616356", + "mapped_gene": "COL2A1", + "initial_sample_size": "5,314,291 European ancestry, Hispanic or Latin American, East Asian ancestry, African ancestry, South Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 695, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1752156", + "strongest_snp_risk_allele": "rs1752156-C", + "or_or_beta": "0.0132", + "ci_text": "[0.0095-0.0169] unit increase", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "DENND1A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 696, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10818938", + "strongest_snp_risk_allele": "rs10818938-G", + "or_or_beta": "0.0106", + "ci_text": "[0.0077-0.0135] unit decrease", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "NEK6", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 697, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11789412", + "strongest_snp_risk_allele": "rs11789412-G", + "or_or_beta": "0.0128", + "ci_text": "[0.0083-0.0173] unit decrease", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": "OLFML2A - WDR38", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 698, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs146362316", + "strongest_snp_risk_allele": "rs146362316-G", + "or_or_beta": "0.0514", + "ci_text": "[0.034-0.069] unit increase", + "p_value": "6E-9", + "pvalue_mlog": "8.221848749616356", + "mapped_gene": "RABEPK", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 699, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7027304", + "strongest_snp_risk_allele": "rs7027304-C", + "or_or_beta": "0.0137", + "ci_text": "[0.011-0.016] unit decrease", + "p_value": "7E-23", + "pvalue_mlog": "22.154901959985743", + "mapped_gene": "LMX1B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 700, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3850585", + "strongest_snp_risk_allele": "rs3850585-C", + "or_or_beta": "0.0207", + "ci_text": "[0.016-0.026] unit decrease", + "p_value": "4E-17", + "pvalue_mlog": "16.397940008672037", + "mapped_gene": "LMX1B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 701, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10760450", + "strongest_snp_risk_allele": "rs10760450-C", + "or_or_beta": "0.0109", + "ci_text": "[0.0072-0.0146] unit increase", + "p_value": "9E-9", + "pvalue_mlog": "8.045757490560675", + "mapped_gene": "LMX1B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 702, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs13292976", + "strongest_snp_risk_allele": "rs13292976-C", + "or_or_beta": "0.0125", + "ci_text": "[0.0096-0.0154] unit decrease", + "p_value": "1E-16", + "pvalue_mlog": "16.0", + "mapped_gene": "LMX1B - ZBTB43", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 703, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs35196838", + "strongest_snp_risk_allele": "rs35196838-C", + "or_or_beta": "0.015", + "ci_text": "[0.01-0.02] unit decrease", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "LMX1B - ZBTB43", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 704, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7871866", + "strongest_snp_risk_allele": "rs7871866-G", + "or_or_beta": "0.019", + "ci_text": "[0.015-0.023] unit decrease", + "p_value": "2E-18", + "pvalue_mlog": "17.69897000433602", + "mapped_gene": "GOLGA2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 705, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6597650", + "strongest_snp_risk_allele": "rs6597650-G", + "or_or_beta": "0.0131", + "ci_text": "[0.01-0.0162] unit increase", + "p_value": "4E-17", + "pvalue_mlog": "16.397940008672037", + "mapped_gene": "FIBCD1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 706, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4601460", + "strongest_snp_risk_allele": "rs4601460-G", + "or_or_beta": "0.0111", + "ci_text": "[0.0076-0.0146] unit decrease", + "p_value": "6E-10", + "pvalue_mlog": "9.221848749616356", + "mapped_gene": "MED27", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 707, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3025343", + "strongest_snp_risk_allele": "rs3025343-G", + "or_or_beta": "0.0148", + "ci_text": "[0.011-0.019] unit increase", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "FAM163B - DBH", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 708, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10858334", + "strongest_snp_risk_allele": "rs10858334-G", + "or_or_beta": "0.0127", + "ci_text": "[0.0082-0.0172] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "OLFM1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 709, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7852958", + "strongest_snp_risk_allele": "rs7852958-C", + "or_or_beta": "0.0105", + "ci_text": "[0.0072-0.0138] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "OLFM1 - LINC02907", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 710, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11507683", + "strongest_snp_risk_allele": "rs11507683-C", + "or_or_beta": "0.021", + "ci_text": "[0.016-0.026] unit increase", + "p_value": "7E-17", + "pvalue_mlog": "16.154901959985743", + "mapped_gene": "EXD3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 711, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs13291830", + "strongest_snp_risk_allele": "rs13291830-C", + "or_or_beta": "0.0091", + "ci_text": "[0.0066-0.0116] unit increase", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "EXD3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 712, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11792069", + "strongest_snp_risk_allele": "rs11792069-G", + "or_or_beta": "0.014", + "ci_text": "[0.01-0.018] unit decrease", + "p_value": "7E-12", + "pvalue_mlog": "11.154901959985743", + "mapped_gene": "EHMT1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 713, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs72775687", + "strongest_snp_risk_allele": "rs72775687-C", + "or_or_beta": "0.0189", + "ci_text": "[0.012-0.026] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "CCDC3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 714, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10752309", + "strongest_snp_risk_allele": "rs10752309-C", + "or_or_beta": "0.0112", + "ci_text": "[0.0073-0.0151] unit decrease", + "p_value": "9E-9", + "pvalue_mlog": "8.045757490560675", + "mapped_gene": "BEND7", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 715, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3814165", + "strongest_snp_risk_allele": "rs3814165-G", + "or_or_beta": "0.0099", + "ci_text": "[0.0066-0.0132] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "FAM171A1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 716, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10904675", + "strongest_snp_risk_allele": "rs10904675-C", + "or_or_beta": "0.0126", + "ci_text": "[0.0091-0.0161] unit increase", + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "FTLP19 - RNU6-1075P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 717, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7893571", + "strongest_snp_risk_allele": "rs7893571-G", + "or_or_beta": "0.0114", + "ci_text": "[0.0083-0.0145] unit decrease", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "RSU1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 718, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs59713597", + "strongest_snp_risk_allele": "rs59713597-G", + "or_or_beta": "0.0132", + "ci_text": "[0.0089-0.0175] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "CACNB2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 719, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1857423", + "strongest_snp_risk_allele": "rs1857423-C", + "or_or_beta": "0.0122", + "ci_text": "[0.0085-0.0159] unit increase", + "p_value": "6E-11", + "pvalue_mlog": "10.221848749616356", + "mapped_gene": "CACNB2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 720, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7908876", + "strongest_snp_risk_allele": "rs7908876-C", + "or_or_beta": "0.0085", + "ci_text": "[0.0056-0.0114] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "CACNB2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 721, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12776880", + "strongest_snp_risk_allele": "rs12776880-T", + "or_or_beta": "0.0121", + "ci_text": "[0.0088-0.0154] unit decrease", + "p_value": "8E-13", + "pvalue_mlog": "12.096910013008056", + "mapped_gene": "MALRD1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 722, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4748713", + "strongest_snp_risk_allele": "rs4748713-C", + "or_or_beta": "0.008", + "ci_text": "[0.0053-0.0107] unit decrease", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "MIR4675 - NEBL", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 723, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs76638898", + "strongest_snp_risk_allele": "rs76638898-G", + "or_or_beta": "0.0358", + "ci_text": "[0.024-0.048] unit increase", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "NEBL", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 724, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11012508", + "strongest_snp_risk_allele": "rs11012508-G", + "or_or_beta": "0.0141", + "ci_text": "[0.0092-0.019] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "NEBL", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 725, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs60360051", + "strongest_snp_risk_allele": "rs60360051-C", + "or_or_beta": "0.018", + "ci_text": "[0.012-0.024] unit decrease", + "p_value": "6E-10", + "pvalue_mlog": "9.221848749616356", + "mapped_gene": "LINC02643 - MRM3P1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 726, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7084454", + "strongest_snp_risk_allele": "rs7084454-G", + "or_or_beta": "0.0195", + "ci_text": "[0.016-0.023] unit decrease", + "p_value": "5E-33", + "pvalue_mlog": "32.30102999566398", + "mapped_gene": "MLLT10", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 727, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs80008252", + "strongest_snp_risk_allele": "rs80008252-T", + "or_or_beta": "0.0383", + "ci_text": "[0.025-0.052] unit decrease", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "MLLT10", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 728, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10829163", + "strongest_snp_risk_allele": "rs10829163-C", + "or_or_beta": "0.015", + "ci_text": "[0.011-0.019] unit decrease", + "p_value": "2E-15", + "pvalue_mlog": "14.698970004336019", + "mapped_gene": "ANKRD26", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 729, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4097319", + "strongest_snp_risk_allele": "rs4097319-G", + "or_or_beta": "0.0094", + "ci_text": "[0.0065-0.0123] unit decrease", + "p_value": "8E-10", + "pvalue_mlog": "9.096910013008056", + "mapped_gene": "NRP1 - LINC02628", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 730, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12782894", + "strongest_snp_risk_allele": "rs12782894-G", + "or_or_beta": "0.0229", + "ci_text": "[0.017-0.028] unit decrease", + "p_value": "5E-16", + "pvalue_mlog": "15.301029995663981", + "mapped_gene": "LINC02628 - LINC00838", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 731, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10827285", + "strongest_snp_risk_allele": "rs10827285-G", + "or_or_beta": "0.0112", + "ci_text": "[0.0081-0.0143] unit increase", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "LINC00838 - RPL23P11", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 732, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1510593", + "strongest_snp_risk_allele": "rs1510593-C", + "or_or_beta": "0.009", + "ci_text": "[0.0059-0.0121] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LINC02629 - PARD3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 733, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs674388", + "strongest_snp_risk_allele": "rs674388-G", + "or_or_beta": "0.0097", + "ci_text": "[0.0064-0.013] unit increase", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "PARD3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 734, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs16935275", + "strongest_snp_risk_allele": "rs16935275-C", + "or_or_beta": "0.0144", + "ci_text": "[0.0095-0.0193] unit increase", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "PARD3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 735, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2477017", + "strongest_snp_risk_allele": "rs2477017-G", + "or_or_beta": "0.0104", + "ci_text": "[0.0073-0.0135] unit decrease", + "p_value": "3E-11", + "pvalue_mlog": "10.522878745280337", + "mapped_gene": "PARD3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 736, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1937684", + "strongest_snp_risk_allele": "rs1937684-T", + "or_or_beta": "0.0101", + "ci_text": "[0.007-0.0132] unit decrease", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "PRKG1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 737, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs79782488", + "strongest_snp_risk_allele": "rs79782488-C", + "or_or_beta": "0.0211", + "ci_text": "[0.014-0.028] unit decrease", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "PRKG1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 738, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2393585", + "strongest_snp_risk_allele": "rs2393585-C", + "or_or_beta": "0.0087", + "ci_text": "[0.0056-0.0118] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "ANK3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 739, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10761785", + "strongest_snp_risk_allele": "rs10761785-G", + "or_or_beta": "0.0109", + "ci_text": "[0.008-0.0138] unit increase", + "p_value": "1E-13", + "pvalue_mlog": "13.0", + "mapped_gene": "REEP3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 740, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11001034", + "strongest_snp_risk_allele": "rs11001034-C", + "or_or_beta": "0.0097", + "ci_text": "[0.007-0.0124] unit decrease", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "ADK", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 741, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3754963", + "strongest_snp_risk_allele": "rs3754963-T", + "or_or_beta": "0.0114", + "ci_text": "[0.0081-0.0147] unit decrease", + "p_value": "3E-11", + "pvalue_mlog": "10.522878745280337", + "mapped_gene": "SCN2A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 742, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs51195", + "strongest_snp_risk_allele": "rs51195-C", + "or_or_beta": "0.0099", + "ci_text": "[0.0066-0.0132] unit increase", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "SCN1A, SCN1A-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 743, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6433243", + "strongest_snp_risk_allele": "rs6433243-C", + "or_or_beta": "0.009", + "ci_text": "[0.0059-0.0121] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "ERICH2-DT", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 744, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3821083", + "strongest_snp_risk_allele": "rs3821083-C", + "or_or_beta": "0.0118", + "ci_text": "[0.0085-0.0151] unit decrease", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "CYBRD1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 745, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6738445", + "strongest_snp_risk_allele": "rs6738445-C", + "or_or_beta": "0.0127", + "ci_text": "[0.0096-0.0158] unit increase", + "p_value": "3E-15", + "pvalue_mlog": "14.522878745280337", + "mapped_gene": "DYNC1I2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 746, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs788163", + "strongest_snp_risk_allele": "rs788163-C", + "or_or_beta": "0.0095", + "ci_text": "[0.0062-0.0128] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "METAP1D", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 747, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2044469", + "strongest_snp_risk_allele": "rs2044469-G", + "or_or_beta": "0.0127", + "ci_text": "[0.0096-0.0158] unit increase", + "p_value": "9E-15", + "pvalue_mlog": "14.045757490560675", + "mapped_gene": "OLA1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 748, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs34234296", + "strongest_snp_risk_allele": "rs34234296-G", + "or_or_beta": "0.0139", + "ci_text": "[0.011-0.017] unit increase", + "p_value": "2E-15", + "pvalue_mlog": "14.698970004336019", + "mapped_gene": "LRRC2P1 - HNRNPA1P39", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 749, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs262255", + "strongest_snp_risk_allele": "rs262255-C", + "or_or_beta": "0.0092", + "ci_text": "[0.0063-0.0121] unit decrease", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "CWC22 - SCHLAP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 750, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1358520", + "strongest_snp_risk_allele": "rs1358520-G", + "or_or_beta": "0.0145", + "ci_text": "[0.011-0.018] unit decrease", + "p_value": "8E-15", + "pvalue_mlog": "14.096910013008056", + "mapped_gene": "CWC22 - SCHLAP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 751, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6739798", + "strongest_snp_risk_allele": "rs6739798-C", + "or_or_beta": "0.0134", + "ci_text": "[0.0097-0.0171] unit increase", + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "CWC22 - SCHLAP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 752, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11679338", + "strongest_snp_risk_allele": "rs11679338-C", + "or_or_beta": "0.0174", + "ci_text": "[0.014-0.021] unit decrease", + "p_value": "9E-28", + "pvalue_mlog": "27.045757490560675", + "mapped_gene": "SCHLAP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 753, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs16827445", + "strongest_snp_risk_allele": "rs16827445-C", + "or_or_beta": "0.01", + "ci_text": "[0.0067-0.0133] unit increase", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "LINC01473", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 754, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2029085", + "strongest_snp_risk_allele": "rs2029085-G", + "or_or_beta": "0.0181", + "ci_text": "[0.013-0.023] unit increase", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "LINC01473", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 755, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7601254", + "strongest_snp_risk_allele": "rs7601254-C", + "or_or_beta": "0.0078", + "ci_text": "[0.0051-0.0105] unit decrease", + "p_value": "8E-9", + "pvalue_mlog": "8.096910013008056", + "mapped_gene": "CALCRL-AS1, CALCRL", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 756, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs16865262", + "strongest_snp_risk_allele": "rs16865262-C", + "or_or_beta": "0.0133", + "ci_text": "[0.0098-0.0168] unit decrease", + "p_value": "4E-13", + "pvalue_mlog": "12.397940008672037", + "mapped_gene": "SF3B1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 757, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1064213", + "strongest_snp_risk_allele": "rs1064213-G", + "or_or_beta": "0.0132", + "ci_text": "[0.011-0.016] unit decrease", + "p_value": "1E-23", + "pvalue_mlog": "23.0", + "mapped_gene": "PLCL1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 758, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1658807", + "strongest_snp_risk_allele": "rs1658807-C", + "or_or_beta": "0.0135", + "ci_text": "[0.0098-0.0172] unit decrease", + "p_value": "1E-12", + "pvalue_mlog": "12.0", + "mapped_gene": "RN7SL717P - C2orf69", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 759, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1020111", + "strongest_snp_risk_allele": "rs1020111-G", + "or_or_beta": "0.0094", + "ci_text": "[0.0065-0.0123] unit increase", + "p_value": "8E-10", + "pvalue_mlog": "9.096910013008056", + "mapped_gene": "SPATS2L", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 760, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6751448", + "strongest_snp_risk_allele": "rs6751448-G", + "or_or_beta": "0.0116", + "ci_text": "[0.0087-0.0145] unit increase", + "p_value": "1E-14", + "pvalue_mlog": "14.0", + "mapped_gene": "NBEAL1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 761, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4482463", + "strongest_snp_risk_allele": "rs4482463-C", + "or_or_beta": "0.0294", + "ci_text": "[0.024-0.035] unit increase", + "p_value": "3E-24", + "pvalue_mlog": "23.522878745280337", + "mapped_gene": "DSTNP5 - PARD3B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 762, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs74966815", + "strongest_snp_risk_allele": "rs74966815-G", + "or_or_beta": "0.0154", + "ci_text": "[0.0099-0.0209] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "PARD3B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 763, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10932099", + "strongest_snp_risk_allele": "rs10932099-C", + "or_or_beta": "0.0099", + "ci_text": "[0.007-0.0128] unit decrease", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "PARD3B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 764, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs73059939", + "strongest_snp_risk_allele": "rs73059939-G", + "or_or_beta": "0.0167", + "ci_text": "[0.011-0.023] unit decrease", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "PPIAP68 - INO80D", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 765, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs972540", + "strongest_snp_risk_allele": "rs972540-G", + "or_or_beta": "0.0132", + "ci_text": "[0.01-0.016] unit increase", + "p_value": "5E-16", + "pvalue_mlog": "15.301029995663981", + "mapped_gene": "ZDBF2 - ACER2P1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 766, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1271272", + "strongest_snp_risk_allele": "rs1271272-G", + "or_or_beta": "0.0119", + "ci_text": "[0.0088-0.015] unit decrease", + "p_value": "3E-13", + "pvalue_mlog": "12.522878745280337", + "mapped_gene": "KLF7", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 767, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11691133", + "strongest_snp_risk_allele": "rs11691133-G", + "or_or_beta": "0.0106", + "ci_text": "[0.0071-0.0141] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "MYOSLID-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 768, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17203016", + "strongest_snp_risk_allele": "rs17203016-G", + "or_or_beta": "0.0143", + "ci_text": "[0.011-0.018] unit increase", + "p_value": "1E-14", + "pvalue_mlog": "14.0", + "mapped_gene": "MYOSLID-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 769, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs16840913", + "strongest_snp_risk_allele": "rs16840913-G", + "or_or_beta": "0.0238", + "ci_text": "[0.016-0.031] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "PIKFYVE", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 770, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11692215", + "strongest_snp_risk_allele": "rs11692215-C", + "or_or_beta": "0.0131", + "ci_text": "[0.0096-0.0166] unit increase", + "p_value": "7E-14", + "pvalue_mlog": "13.154901959985743", + "mapped_gene": "AFF3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 771, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4851287", + "strongest_snp_risk_allele": "rs4851287-G", + "or_or_beta": "0.0133", + "ci_text": "[0.011-0.016] unit decrease", + "p_value": "3E-22", + "pvalue_mlog": "21.522878745280337", + "mapped_gene": "LONRF2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 772, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11541353", + "strongest_snp_risk_allele": "rs11541353-C", + "or_or_beta": "0.0097", + "ci_text": "[0.0064-0.013] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "NPAS2, NPAS2-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 773, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4850962", + "strongest_snp_risk_allele": "rs4850962-C", + "or_or_beta": "0.009", + "ci_text": "[0.0061-0.0119] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "TBC1D8", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 774, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12615778", + "strongest_snp_risk_allele": "rs12615778-G", + "or_or_beta": "0.0093", + "ci_text": "[0.0062-0.0124] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "MAP4K4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 775, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4851029", + "strongest_snp_risk_allele": "rs4851029-G", + "or_or_beta": "0.0108", + "ci_text": "[0.0079-0.0137] unit increase", + "p_value": "8E-13", + "pvalue_mlog": "12.096910013008056", + "mapped_gene": "CRLF3P1 - CAPZBP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 776, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs77045602", + "strongest_snp_risk_allele": "rs77045602-G", + "or_or_beta": "0.0145", + "ci_text": "[0.0094-0.0196] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "LINC01965", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 777, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10197031", + "strongest_snp_risk_allele": "rs10197031-C", + "or_or_beta": "0.0167", + "ci_text": "[0.013-0.02] unit increase", + "p_value": "2E-23", + "pvalue_mlog": "22.69897000433602", + "mapped_gene": "PANTR1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 778, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6722268", + "strongest_snp_risk_allele": "rs6722268-C", + "or_or_beta": "0.0123", + "ci_text": "[0.009-0.0156] unit decrease", + "p_value": "9E-13", + "pvalue_mlog": "12.045757490560675", + "mapped_gene": "MRPS9-AS2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 779, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4676084", + "strongest_snp_risk_allele": "rs4676084-G", + "or_or_beta": "0.0091", + "ci_text": "[0.0062-0.012] unit decrease", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "SH3RF3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 780, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17041868", + "strongest_snp_risk_allele": "rs17041868-C", + "or_or_beta": "0.017", + "ci_text": "[0.011-0.023] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "BCL2L11, MIR4435-2HG", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 781, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs731834", + "strongest_snp_risk_allele": "rs731834-C", + "or_or_beta": "0.0108", + "ci_text": "[0.0077-0.0139] unit decrease", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "PSD4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 782, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11687120", + "strongest_snp_risk_allele": "rs11687120-G", + "or_or_beta": "0.0086", + "ci_text": "[0.0057-0.0115] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LINC01956", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 783, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs72844740", + "strongest_snp_risk_allele": "rs72844740-C", + "or_or_beta": "0.0324", + "ci_text": "[0.022-0.043] unit increase", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "LYPD1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 784, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10204422", + "strongest_snp_risk_allele": "rs10204422-G", + "or_or_beta": "0.0122", + "ci_text": "[0.0085-0.0159] unit increase", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "NCKAP5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 785, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1530559", + "strongest_snp_risk_allele": "rs1530559-G", + "or_or_beta": "0.0098", + "ci_text": "[0.0069-0.0127] unit decrease", + "p_value": "7E-11", + "pvalue_mlog": "10.154901959985743", + "mapped_gene": "MAP3K19", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 786, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4954388", + "strongest_snp_risk_allele": "rs4954388-C", + "or_or_beta": "0.0102", + "ci_text": "[0.0067-0.0137] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "DARS1-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 787, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10202846", + "strongest_snp_risk_allele": "rs10202846-C", + "or_or_beta": "0.0092", + "ci_text": "[0.0061-0.0123] unit decrease", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "LRP1B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 788, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17551974", + "strongest_snp_risk_allele": "rs17551974-C", + "or_or_beta": "0.014", + "ci_text": "[0.01-0.018] unit increase", + "p_value": "5E-13", + "pvalue_mlog": "12.301029995663981", + "mapped_gene": "LRP1B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 789, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12990449", + "strongest_snp_risk_allele": "rs12990449-C", + "or_or_beta": "0.0105", + "ci_text": "[0.0074-0.0136] unit increase", + "p_value": "6E-11", + "pvalue_mlog": "10.221848749616356", + "mapped_gene": "LRP1B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 790, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs79503448", + "strongest_snp_risk_allele": "rs79503448-G", + "or_or_beta": "0.0149", + "ci_text": "[0.01-0.02] unit decrease", + "p_value": "4E-10", + "pvalue_mlog": "9.397940008672037", + "mapped_gene": "LRP1B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 791, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2890652", + "strongest_snp_risk_allele": "rs2890652-C", + "or_or_beta": "0.0129", + "ci_text": "[0.009-0.0168] unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "LRP1B - UBE2V1P14", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 792, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4662565", + "strongest_snp_risk_allele": "rs4662565-C", + "or_or_beta": "0.0112", + "ci_text": "[0.0079-0.0145] unit increase", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "UBE2V1P14 - RRN3P4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 793, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6710871", + "strongest_snp_risk_allele": "rs6710871-G", + "or_or_beta": "0.0189", + "ci_text": "[0.015-0.023] unit decrease", + "p_value": "6E-19", + "pvalue_mlog": "18.221848749616356", + "mapped_gene": "ARHGAP15", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 794, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7560871", + "strongest_snp_risk_allele": "rs7560871-G", + "or_or_beta": "0.0188", + "ci_text": "[0.013-0.024] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "TEX41", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 795, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs77149883", + "strongest_snp_risk_allele": "rs77149883-G", + "or_or_beta": "0.0213", + "ci_text": "[0.014-0.029] unit decrease", + "p_value": "9E-9", + "pvalue_mlog": "8.045757490560675", + "mapped_gene": "TEX41", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 796, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs114964326", + "strongest_snp_risk_allele": "rs114964326-G", + "or_or_beta": "0.0314", + "ci_text": "[0.021-0.041] unit increase", + "p_value": "9E-10", + "pvalue_mlog": "9.045757490560675", + "mapped_gene": "TEX41", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 797, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs453520", + "strongest_snp_risk_allele": "rs453520-C", + "or_or_beta": "0.0123", + "ci_text": "[0.0094-0.0152] unit increase", + "p_value": "8E-16", + "pvalue_mlog": "15.096910013008056", + "mapped_gene": "LINC01911 - RNU6-692P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 798, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1526288", + "strongest_snp_risk_allele": "rs1526288-G", + "or_or_beta": "0.0087", + "ci_text": "[0.0058-0.0116] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LINC01931, MMADHC-DT", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 799, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs16828086", + "strongest_snp_risk_allele": "rs16828086-G", + "or_or_beta": "0.0094", + "ci_text": "[0.0063-0.0125] unit decrease", + "p_value": "6E-9", + "pvalue_mlog": "8.221848749616356", + "mapped_gene": "LINC01818", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 800, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs76120462", + "strongest_snp_risk_allele": "rs76120462-C", + "or_or_beta": "0.0183", + "ci_text": "[0.012-0.025] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "GALNT13", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 801, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7600699", + "strongest_snp_risk_allele": "rs7600699-G", + "or_or_beta": "0.0124", + "ci_text": "[0.0083-0.0165] unit increase", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "RNU6-1001P - MTCO1P45", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 802, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1518278", + "strongest_snp_risk_allele": "rs1518278-C", + "or_or_beta": "0.0097", + "ci_text": "[0.0068-0.0126] unit increase", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "RNU6-546P - LINC01876", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 803, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11695013", + "strongest_snp_risk_allele": "rs11695013-C", + "or_or_beta": "0.0109", + "ci_text": "[0.0078-0.014] unit increase", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "LINC01876", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 804, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3764835", + "strongest_snp_risk_allele": "rs3764835-G", + "or_or_beta": "0.0135", + "ci_text": "[0.0094-0.0176] unit increase", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "PKP4-AS1, PKP4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 805, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12692596", + "strongest_snp_risk_allele": "rs12692596-C", + "or_or_beta": "0.0093", + "ci_text": "[0.0064-0.0122] unit decrease", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "RBMS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 806, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4664325", + "strongest_snp_risk_allele": "rs4664325-G", + "or_or_beta": "0.009", + "ci_text": "[0.0065-0.0115] unit decrease", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "RBMS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 807, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs77882688", + "strongest_snp_risk_allele": "rs77882688-C", + "or_or_beta": "0.0165", + "ci_text": "[0.011-0.022] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "SLC4A10", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 808, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2053865", + "strongest_snp_risk_allele": "rs2053865-C", + "or_or_beta": "0.0093", + "ci_text": "[0.0064-0.0122] unit decrease", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "SLC4A10", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 809, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10192119", + "strongest_snp_risk_allele": "rs10192119-G", + "or_or_beta": "0.0132", + "ci_text": "[0.0095-0.0169] unit increase", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "FIGN", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 810, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs569675", + "strongest_snp_risk_allele": "rs569675-G", + "or_or_beta": "0.0104", + "ci_text": "[0.0073-0.0135] unit decrease", + "p_value": "6E-11", + "pvalue_mlog": "10.221848749616356", + "mapped_gene": "CYP2C56P - GRB14", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 811, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11677541", + "strongest_snp_risk_allele": "rs11677541-G", + "or_or_beta": "0.0102", + "ci_text": "[0.0073-0.0131] unit increase", + "p_value": "4E-11", + "pvalue_mlog": "10.397940008672037", + "mapped_gene": "GRB14", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 812, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs13389219", + "strongest_snp_risk_allele": "rs13389219-C", + "or_or_beta": "0.0113", + "ci_text": "[0.0086-0.014] unit decrease", + "p_value": "2E-16", + "pvalue_mlog": "15.698970004336019", + "mapped_gene": "COBLL1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 813, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs929589", + "strongest_snp_risk_allele": "rs929589-G", + "or_or_beta": "0.0097", + "ci_text": "[0.0068-0.0126] unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "LINC01613 - MIR147A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 814, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7025486", + "strongest_snp_risk_allele": "rs7025486-G", + "or_or_beta": "0.0089", + "ci_text": "[0.006-0.0118] unit increase", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "DAB2IP", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 815, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs72770701", + "strongest_snp_risk_allele": "rs72770701-G", + "or_or_beta": "0.0152", + "ci_text": "[0.01-0.02] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "DAB2IP", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 816, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs9792407", + "strongest_snp_risk_allele": "rs9792407-G", + "or_or_beta": "0.0102", + "ci_text": "[0.0067-0.0137] unit increase", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "TTLL11", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 817, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10985978", + "strongest_snp_risk_allele": "rs10985978-G", + "or_or_beta": "0.0116", + "ci_text": "[0.0079-0.0153] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "STRBP - CRB2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 818, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1105223", + "strongest_snp_risk_allele": "rs1105223-C", + "or_or_beta": "0.0102", + "ci_text": "[0.0077-0.0127] unit decrease", + "p_value": "2E-14", + "pvalue_mlog": "13.698970004336019", + "mapped_gene": "CRB2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 819, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2808404", + "strongest_snp_risk_allele": "rs2808404-C", + "or_or_beta": "0.0095", + "ci_text": "[0.0062-0.0128] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "DENND1A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 820, + "study_accession": "GCST90255690", + "disease_trait": "Skin color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs6497263", + "strongest_snp_risk_allele": "rs6497263-A", + "or_or_beta": "0.139467", + "ci_text": "[0.093-0.186] unit decrease", + "p_value": "6E-9", + "pvalue_mlog": "8.221848749616356", + "mapped_gene": "OCA2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 821, + "study_accession": "GCST90255690", + "disease_trait": "Skin color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7116973", + "strongest_snp_risk_allele": "rs7116973-A", + "or_or_beta": "0.144741", + "ci_text": "[0.096-0.194] unit decrease", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "TYR", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 822, + "study_accession": "GCST90255690", + "disease_trait": "Skin color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs73077127", + "strongest_snp_risk_allele": "rs73077127-C", + "or_or_beta": "0.437708", + "ci_text": "[0.32-0.56] unit decrease", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 823, + "study_accession": "GCST90255690", + "disease_trait": "Skin color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7380538", + "strongest_snp_risk_allele": "rs7380538-A", + "or_or_beta": "0.532895", + "ci_text": "[0.45-0.62] unit decrease", + "p_value": "5E-35", + "pvalue_mlog": "34.30102999566398", + "mapped_gene": "SLC45A2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 824, + "study_accession": "GCST90255690", + "disease_trait": "Skin color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7494942", + "strongest_snp_risk_allele": "rs7494942-A", + "or_or_beta": "0.102764", + "ci_text": "[0.071-0.135] unit decrease", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "HERC2", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 825, + "study_accession": "GCST90255690", + "disease_trait": "Skin color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7713279", + "strongest_snp_risk_allele": "rs7713279-G", + "or_or_beta": "0.264751", + "ci_text": "[0.23-0.3] unit decrease", + "p_value": "5E-45", + "pvalue_mlog": "44.30102999566398", + "mapped_gene": "ADAMTS12 - RXFP3", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 826, + "study_accession": "GCST90255690", + "disease_trait": "Skin color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs7721230", + "strongest_snp_risk_allele": "rs7721230-A", + "or_or_beta": "0.10119", + "ci_text": "[0.07-0.133] unit decrease", + "p_value": "4E-10", + "pvalue_mlog": "9.397940008672037", + "mapped_gene": "C1QTNF3-AMACR, AMACR", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 827, + "study_accession": "GCST90255690", + "disease_trait": "Skin color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs79014396", + "strongest_snp_risk_allele": "rs79014396-T", + "or_or_beta": "0.380487", + "ci_text": "[0.27-0.49] unit decrease", + "p_value": "6E-12", + "pvalue_mlog": "11.221848749616356", + "mapped_gene": "RXFP3", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 828, + "study_accession": "GCST90255690", + "disease_trait": "Skin color", + "study": "Skin Phototype and Disease: A Comprehensive Genetic Approach to Pigmentary Traits Pleiotropy Using PRS in the GCAT Cohort.", + "snps": "rs9292519", + "strongest_snp_risk_allele": "rs9292519-A", + "or_or_beta": "0.164078", + "ci_text": "[0.13-0.19] unit decrease", + "p_value": "2E-25", + "pvalue_mlog": "24.69897000433602", + "mapped_gene": "RXFP3", + "initial_sample_size": "4,985 Iberian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 829, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12801000", + "strongest_snp_risk_allele": "rs12801000-G", + "or_or_beta": "0.0204", + "ci_text": "[0.014-0.027] unit increase", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "TNKS1BP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 830, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11231657", + "strongest_snp_risk_allele": "rs11231657-G", + "or_or_beta": "0.0231", + "ci_text": "[0.015-0.031] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "NAA40 - RNU6-45P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 831, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs562664", + "strongest_snp_risk_allele": "rs562664-C", + "or_or_beta": "0.0134", + "ci_text": "[0.0097-0.0171] unit increase", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "FLRT1, MACROD1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 832, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7947143", + "strongest_snp_risk_allele": "rs7947143-G", + "or_or_beta": "0.0153", + "ci_text": "[0.011-0.019] unit increase", + "p_value": "1E-13", + "pvalue_mlog": "13.0", + "mapped_gene": "PRDX5 - CCDC88B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 833, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs505802", + "strongest_snp_risk_allele": "rs505802-C", + "or_or_beta": "0.0145", + "ci_text": "[0.012-0.017] unit decrease", + "p_value": "6E-23", + "pvalue_mlog": "22.221848749616356", + "mapped_gene": "SLC22A11 - SLC22A12", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 834, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10896012", + "strongest_snp_risk_allele": "rs10896012-C", + "or_or_beta": "0.0108", + "ci_text": "[0.0071-0.0145] unit increase", + "p_value": "8E-9", + "pvalue_mlog": "8.096910013008056", + "mapped_gene": "MALAT1 - SNRPGP19", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 835, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2234458", + "strongest_snp_risk_allele": "rs2234458-C", + "or_or_beta": "0.0165", + "ci_text": "[0.013-0.02] unit increase", + "p_value": "1E-21", + "pvalue_mlog": "21.0", + "mapped_gene": "EFEMP2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 836, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs527737", + "strongest_snp_risk_allele": "rs527737-C", + "or_or_beta": "0.0113", + "ci_text": "[0.008-0.0146] unit increase", + "p_value": "3E-11", + "pvalue_mlog": "10.522878745280337", + "mapped_gene": "PACS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 837, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs801741", + "strongest_snp_risk_allele": "rs801741-C", + "or_or_beta": "0.0086", + "ci_text": "[0.0057-0.0115] unit decrease", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "PACS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 838, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12274114", + "strongest_snp_risk_allele": "rs12274114-C", + "or_or_beta": "0.0115", + "ci_text": "[0.0078-0.0152] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "PPP6R3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 839, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs622082", + "strongest_snp_risk_allele": "rs622082-G", + "or_or_beta": "0.0096", + "ci_text": "[0.0069-0.0123] unit increase", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "IGHMBP2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 840, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10796821", + "strongest_snp_risk_allele": "rs10796821-G", + "or_or_beta": "0.0141", + "ci_text": "[0.011-0.017] unit decrease", + "p_value": "3E-20", + "pvalue_mlog": "19.522878745280337", + "mapped_gene": "LINC01488", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 841, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7122472", + "strongest_snp_risk_allele": "rs7122472-C", + "or_or_beta": "0.0115", + "ci_text": "[0.0082-0.0148] unit decrease", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "LINC01488 - CCND1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 842, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1789165", + "strongest_snp_risk_allele": "rs1789165-G", + "or_or_beta": "0.0144", + "ci_text": "[0.011-0.017] unit decrease", + "p_value": "8E-21", + "pvalue_mlog": "20.096910013008056", + "mapped_gene": "LTO1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 843, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2440885", + "strongest_snp_risk_allele": "rs2440885-G", + "or_or_beta": "0.0097", + "ci_text": "[0.0068-0.0126] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "SHANK2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 844, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1552224", + "strongest_snp_risk_allele": "rs1552224-C", + "or_or_beta": "0.0144", + "ci_text": "[0.011-0.018] unit increase", + "p_value": "2E-15", + "pvalue_mlog": "14.698970004336019", + "mapped_gene": "ARAP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 845, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7942337", + "strongest_snp_risk_allele": "rs7942337-C", + "or_or_beta": "0.0122", + "ci_text": "[0.0081-0.0163] unit increase", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "GUCY2EP - TSKU-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 846, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2450128", + "strongest_snp_risk_allele": "rs2450128-G", + "or_or_beta": "0.0126", + "ci_text": "[0.0087-0.0165] unit increase", + "p_value": "4E-10", + "pvalue_mlog": "9.397940008672037", + "mapped_gene": "GAB2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 847, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs349088", + "strongest_snp_risk_allele": "rs349088-C", + "or_or_beta": "0.0119", + "ci_text": "[0.009-0.0148] unit increase", + "p_value": "9E-15", + "pvalue_mlog": "14.045757490560675", + "mapped_gene": "DLG2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 848, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1213257", + "strongest_snp_risk_allele": "rs1213257-C", + "or_or_beta": "0.0112", + "ci_text": "[0.0073-0.0151] unit increase", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "DLG2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 849, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs675775", + "strongest_snp_risk_allele": "rs675775-G", + "or_or_beta": "0.0086", + "ci_text": "[0.0057-0.0115] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "ME3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 850, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7118690", + "strongest_snp_risk_allele": "rs7118690-G", + "or_or_beta": "0.0098", + "ci_text": "[0.0065-0.0131] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LINC02711 - MTCYBP41", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 851, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1898236", + "strongest_snp_risk_allele": "rs1898236-G", + "or_or_beta": "0.0088", + "ci_text": "[0.0057-0.0119] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "H3P34 - FOLH1B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 852, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10830452", + "strongest_snp_risk_allele": "rs10830452-G", + "or_or_beta": "0.012", + "ci_text": "[0.0089-0.0151] unit increase", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "CHORDC1 - DISC1FP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 853, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7114979", + "strongest_snp_risk_allele": "rs7114979-C", + "or_or_beta": "0.0092", + "ci_text": "[0.0061-0.0123] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "DISC1FP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 854, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7952102", + "strongest_snp_risk_allele": "rs7952102-C", + "or_or_beta": "0.0124", + "ci_text": "[0.0091-0.0157] unit decrease", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "CHID1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 855, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11246340", + "strongest_snp_risk_allele": "rs11246340-G", + "or_or_beta": "0.0117", + "ci_text": "[0.0078-0.0156] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "CHID1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 856, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2943510", + "strongest_snp_risk_allele": "rs2943510-C", + "or_or_beta": "0.0111", + "ci_text": "[0.0072-0.015] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "MUC5B, MUC5B-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 857, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10840606", + "strongest_snp_risk_allele": "rs10840606-G", + "or_or_beta": "0.0168", + "ci_text": "[0.013-0.021] unit increase", + "p_value": "3E-16", + "pvalue_mlog": "15.522878745280337", + "mapped_gene": "MIR4686 - ASCL2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 858, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1011476", + "strongest_snp_risk_allele": "rs1011476-G", + "or_or_beta": "0.0089", + "ci_text": "[0.0058-0.012] unit decrease", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": "ASCL2 - C11orf21", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 859, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2237895", + "strongest_snp_risk_allele": "rs2237895-C", + "or_or_beta": "0.0079", + "ci_text": "[0.0054-0.0104] unit decrease", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "KCNQ1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 860, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6578300", + "strongest_snp_risk_allele": "rs6578300-G", + "or_or_beta": "0.0107", + "ci_text": "[0.0076-0.0138] unit increase", + "p_value": "3E-11", + "pvalue_mlog": "10.522878745280337", + "mapped_gene": "KCNQ1-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 861, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4929923", + "strongest_snp_risk_allele": "rs4929923-C", + "or_or_beta": "0.0161", + "ci_text": "[0.013-0.019] unit increase", + "p_value": "9E-32", + "pvalue_mlog": "31.045757490560675", + "mapped_gene": "TRIM66", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 862, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1037587", + "strongest_snp_risk_allele": "rs1037587-C", + "or_or_beta": "0.0102", + "ci_text": "[0.0073-0.0131] unit decrease", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "MIR4299 - MIR8070", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 863, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1982350", + "strongest_snp_risk_allele": "rs1982350-G", + "or_or_beta": "0.015", + "ci_text": "[0.012-0.018] unit increase", + "p_value": "4E-26", + "pvalue_mlog": "25.397940008672037", + "mapped_gene": "BMAL1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 864, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7121171", + "strongest_snp_risk_allele": "rs7121171-G", + "or_or_beta": "0.0086", + "ci_text": "[0.0057-0.0115] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "RRAS2 - COPB1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 865, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11023948", + "strongest_snp_risk_allele": "rs11023948-C", + "or_or_beta": "0.0101", + "ci_text": "[0.0066-0.0136] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "SOX6", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 866, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs393625", + "strongest_snp_risk_allele": "rs393625-C", + "or_or_beta": "0.0139", + "ci_text": "[0.009-0.0188] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "PLEKHA7", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 867, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2051772", + "strongest_snp_risk_allele": "rs2051772-G", + "or_or_beta": "0.0129", + "ci_text": "[0.01-0.0158] unit decrease", + "p_value": "5E-18", + "pvalue_mlog": "17.30102999566398", + "mapped_gene": "KCNJ11, NCR3LG1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 868, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4757638", + "strongest_snp_risk_allele": "rs4757638-G", + "or_or_beta": "0.0108", + "ci_text": "[0.0077-0.0139] unit decrease", + "p_value": "6E-12", + "pvalue_mlog": "11.221848749616356", + "mapped_gene": "HPS5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 869, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs35107435", + "strongest_snp_risk_allele": "rs35107435-T", + "or_or_beta": "0.0177", + "ci_text": "[0.013-0.022] unit increase", + "p_value": "5E-14", + "pvalue_mlog": "13.301029995663981", + "mapped_gene": "BBOX1-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 870, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7952482", + "strongest_snp_risk_allele": "rs7952482-C", + "or_or_beta": "0.0141", + "ci_text": "[0.01-0.018] unit increase", + "p_value": "5E-14", + "pvalue_mlog": "13.301029995663981", + "mapped_gene": "LGR4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 871, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7481311", + "strongest_snp_risk_allele": "rs7481311-C", + "or_or_beta": "0.0248", + "ci_text": "[0.022-0.028] unit decrease", + "p_value": "9E-57", + "pvalue_mlog": "56.045757490560675", + "mapped_gene": "BDNF-AS", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 872, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6265", + "strongest_snp_risk_allele": "rs6265-C", + "or_or_beta": "0.0396", + "ci_text": "[0.036-0.043] unit increase", + "p_value": "1E-122", + "pvalue_mlog": "122.0", + "mapped_gene": "BDNF, BDNF-AS", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 873, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs145596917", + "strongest_snp_risk_allele": "rs145596917-C", + "or_or_beta": "0.0395", + "ci_text": "[0.028-0.051] unit decrease", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "BDNF-AS, BDNF", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 874, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs908867", + "strongest_snp_risk_allele": "rs908867-C", + "or_or_beta": "0.0179", + "ci_text": "[0.013-0.023] unit decrease", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "BDNF - CBX3P1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 875, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10835219", + "strongest_snp_risk_allele": "rs10835219-C", + "or_or_beta": "0.0125", + "ci_text": "[0.0094-0.0156] unit decrease", + "p_value": "1E-14", + "pvalue_mlog": "14.0", + "mapped_gene": "BDNF - CBX3P1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 876, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1596299", + "strongest_snp_risk_allele": "rs1596299-C", + "or_or_beta": "0.0089", + "ci_text": "[0.0058-0.012] unit decrease", + "p_value": "5E-8", + "pvalue_mlog": "7.301029995663981", + "mapped_gene": "METTL15 - LINC02758", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 877, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7948120", + "strongest_snp_risk_allele": "rs7948120-C", + "or_or_beta": "0.0149", + "ci_text": "[0.012-0.018] unit increase", + "p_value": "3E-18", + "pvalue_mlog": "17.522878745280337", + "mapped_gene": "LINC02742", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 878, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10835482", + "strongest_snp_risk_allele": "rs10835482-C", + "or_or_beta": "0.0136", + "ci_text": "[0.0091-0.0181] unit increase", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "LINC02742 - LINC02755", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 879, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4923597", + "strongest_snp_risk_allele": "rs4923597-G", + "or_or_beta": "0.0131", + "ci_text": "[0.01-0.016] unit increase", + "p_value": "2E-17", + "pvalue_mlog": "16.69897000433602", + "mapped_gene": "LINC02742 - LINC02755", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 880, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs140232655", + "strongest_snp_risk_allele": "rs140232655-C", + "or_or_beta": "0.0339", + "ci_text": "[0.022-0.046] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "ARL14EP-DT", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 881, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2065418", + "strongest_snp_risk_allele": "rs2065418-G", + "or_or_beta": "0.017", + "ci_text": "[0.014-0.02] unit decrease", + "p_value": "6E-27", + "pvalue_mlog": "26.221848749616356", + "mapped_gene": "MPPED2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 882, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs549272", + "strongest_snp_risk_allele": "rs549272-C", + "or_or_beta": "0.0114", + "ci_text": "[0.0077-0.0151] unit decrease", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "MPPED2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 883, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs223051", + "strongest_snp_risk_allele": "rs223051-C", + "or_or_beta": "0.0103", + "ci_text": "[0.0072-0.0134] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "RCN1 - THEM7P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 884, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4755713", + "strongest_snp_risk_allele": "rs4755713-C", + "or_or_beta": "0.0117", + "ci_text": "[0.0084-0.015] unit increase", + "p_value": "7E-12", + "pvalue_mlog": "11.154901959985743", + "mapped_gene": "TTC17 - CTBP2P6", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 885, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2862996", + "strongest_snp_risk_allele": "rs2862996-G", + "or_or_beta": "0.0194", + "ci_text": "[0.016-0.023] unit increase", + "p_value": "3E-35", + "pvalue_mlog": "34.52287874528034", + "mapped_gene": "MIR670HG", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 886, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7114842", + "strongest_snp_risk_allele": "rs7114842-C", + "or_or_beta": "0.01", + "ci_text": "[0.0067-0.0133] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "HSD17B12", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 887, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12801812", + "strongest_snp_risk_allele": "rs12801812-G", + "or_or_beta": "0.0321", + "ci_text": "[0.022-0.043] unit decrease", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "HSD17B12", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 888, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2434467", + "strongest_snp_risk_allele": "rs2434467-C", + "or_or_beta": "0.0121", + "ci_text": "[0.009-0.0152] unit decrease", + "p_value": "4E-14", + "pvalue_mlog": "13.397940008672037", + "mapped_gene": "HSD17B12 - ALKBH3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 889, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10742752", + "strongest_snp_risk_allele": "rs10742752-C", + "or_or_beta": "0.0112", + "ci_text": "[0.0083-0.0141] unit increase", + "p_value": "8E-14", + "pvalue_mlog": "13.096910013008056", + "mapped_gene": "LINC02687", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 890, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs137946119", + "strongest_snp_risk_allele": "rs137946119-G", + "or_or_beta": "0.045", + "ci_text": "[0.031-0.059] unit decrease", + "p_value": "5E-10", + "pvalue_mlog": "9.301029995663981", + "mapped_gene": "PHF21A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 891, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6485674", + "strongest_snp_risk_allele": "rs6485674-G", + "or_or_beta": "0.0092", + "ci_text": "[0.0063-0.0121] unit increase", + "p_value": "3E-9", + "pvalue_mlog": "8.522878745280337", + "mapped_gene": "CREB3L1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 892, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7128102", + "strongest_snp_risk_allele": "rs7128102-G", + "or_or_beta": "0.0194", + "ci_text": "[0.014-0.024] unit decrease", + "p_value": "7E-14", + "pvalue_mlog": "13.154901959985743", + "mapped_gene": "LRP4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 893, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3740694", + "strongest_snp_risk_allele": "rs3740694-G", + "or_or_beta": "0.0141", + "ci_text": "[0.01-0.018] unit increase", + "p_value": "1E-12", + "pvalue_mlog": "12.0", + "mapped_gene": "CSTPP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 894, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7114704", + "strongest_snp_risk_allele": "rs7114704-C", + "or_or_beta": "0.0241", + "ci_text": "[0.018-0.03] unit decrease", + "p_value": "2E-14", + "pvalue_mlog": "13.698970004336019", + "mapped_gene": "MADD-AS1, MADD", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 895, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10769254", + "strongest_snp_risk_allele": "rs10769254-G", + "or_or_beta": "0.0137", + "ci_text": "[0.01-0.0174] unit increase", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "MYBPC3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 896, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs55957907", + "strongest_snp_risk_allele": "rs55957907-G", + "or_or_beta": "0.0295", + "ci_text": "[0.019-0.04] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "SPI1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 897, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11606287", + "strongest_snp_risk_allele": "rs11606287-C", + "or_or_beta": "0.0132", + "ci_text": "[0.01-0.016] unit increase", + "p_value": "7E-18", + "pvalue_mlog": "17.154901959985743", + "mapped_gene": "SLC39A13-AS1, SPI1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 898, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3817334", + "strongest_snp_risk_allele": "rs3817334-C", + "or_or_beta": "0.0257", + "ci_text": "[0.023-0.028] unit decrease", + "p_value": "1E-78", + "pvalue_mlog": "78.0", + "mapped_gene": "MTCH2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 899, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11039325", + "strongest_snp_risk_allele": "rs11039325-C", + "or_or_beta": "0.0347", + "ci_text": "[0.023-0.047] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "MTCH2 - AGBL2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 900, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs72911714", + "strongest_snp_risk_allele": "rs72911714-C", + "or_or_beta": "0.0158", + "ci_text": "[0.01-0.021] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "MTCH2 - AGBL2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 901, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12146571", + "strongest_snp_risk_allele": "rs12146571-C", + "or_or_beta": "0.0169", + "ci_text": "[0.012-0.021] unit increase", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "OR4X1 - OR4S1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 902, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7120873", + "strongest_snp_risk_allele": "rs7120873-C", + "or_or_beta": "0.0151", + "ci_text": "[0.01-0.02] unit decrease", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "TYRL - GRM5P1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 903, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1124847", + "strongest_snp_risk_allele": "rs1124847-G", + "or_or_beta": "0.0087", + "ci_text": "[0.0058-0.0116] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LRRC55", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 904, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2605593", + "strongest_snp_risk_allele": "rs2605593-G", + "or_or_beta": "0.0113", + "ci_text": "[0.0084-0.0142] unit decrease", + "p_value": "8E-14", + "pvalue_mlog": "13.096910013008056", + "mapped_gene": "DEUP1 - SMCO4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 905, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2509324", + "strongest_snp_risk_allele": "rs2509324-G", + "or_or_beta": "0.0087", + "ci_text": "[0.0058-0.0116] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "C11orf97", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 906, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7933205", + "strongest_snp_risk_allele": "rs7933205-G", + "or_or_beta": "0.0112", + "ci_text": "[0.0077-0.0147] unit increase", + "p_value": "9E-10", + "pvalue_mlog": "9.045757490560675", + "mapped_gene": "LINC02713 - CNTN5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 907, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10895901", + "strongest_snp_risk_allele": "rs10895901-G", + "or_or_beta": "0.0293", + "ci_text": "[0.02-0.039] unit decrease", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "KBTBD3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 908, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2604968", + "strongest_snp_risk_allele": "rs2604968-G", + "or_or_beta": "0.0113", + "ci_text": "[0.0078-0.0148] unit decrease", + "p_value": "4E-10", + "pvalue_mlog": "9.397940008672037", + "mapped_gene": "GUCY1A2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 909, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2155645", + "strongest_snp_risk_allele": "rs2155645-C", + "or_or_beta": "0.0117", + "ci_text": "[0.0084-0.015] unit increase", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "NCAM1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 910, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs719802", + "strongest_snp_risk_allele": "rs719802-C", + "or_or_beta": "0.0087", + "ci_text": "[0.006-0.0114] unit decrease", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "TTC12", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 911, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs513249", + "strongest_snp_risk_allele": "rs513249-T", + "or_or_beta": "0.0123", + "ci_text": "[0.0084-0.0162] unit decrease", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "ZBTB16", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 912, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2507885", + "strongest_snp_risk_allele": "rs2507885-C", + "or_or_beta": "0.0105", + "ci_text": "[0.0072-0.0138] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "NXPE2 - CADM1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 913, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1048932", + "strongest_snp_risk_allele": "rs1048932-C", + "or_or_beta": "0.0152", + "ci_text": "[0.012-0.018] unit increase", + "p_value": "7E-25", + "pvalue_mlog": "24.154901959985743", + "mapped_gene": "CADM1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 914, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10128746", + "strongest_snp_risk_allele": "rs10128746-C", + "or_or_beta": "0.0217", + "ci_text": "[0.014-0.029] unit increase", + "p_value": "5E-9", + "pvalue_mlog": "8.301029995663981", + "mapped_gene": "CADM1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 915, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs220839", + "strongest_snp_risk_allele": "rs220839-C", + "or_or_beta": "0.0124", + "ci_text": "[0.0085-0.0163] unit increase", + "p_value": "6E-10", + "pvalue_mlog": "9.221848749616356", + "mapped_gene": "CADM1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 916, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs925151", + "strongest_snp_risk_allele": "rs925151-G", + "or_or_beta": "0.0087", + "ci_text": "[0.0056-0.0118] unit decrease", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "LINC02151", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 917, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs145802214", + "strongest_snp_risk_allele": "rs145802214-C", + "or_or_beta": "0.0206", + "ci_text": "[0.014-0.028] unit increase", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "SIK3 - PAFAH1B2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 918, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs573455", + "strongest_snp_risk_allele": "rs573455-G", + "or_or_beta": "0.0088", + "ci_text": "[0.0059-0.0117] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "CEP164", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 919, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1064939", + "strongest_snp_risk_allele": "rs1064939-T", + "or_or_beta": "0.0392", + "ci_text": "[0.027-0.051] unit decrease", + "p_value": "4E-11", + "pvalue_mlog": "10.397940008672037", + "mapped_gene": "TTC36-AS1, KMT2A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 920, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs55772432", + "strongest_snp_risk_allele": "rs55772432-G", + "or_or_beta": "0.0163", + "ci_text": "[0.011-0.022] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "UPK2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 921, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2230593", + "strongest_snp_risk_allele": "rs2230593-C", + "or_or_beta": "0.0172", + "ci_text": "[0.012-0.022] unit decrease", + "p_value": "3E-11", + "pvalue_mlog": "10.522878745280337", + "mapped_gene": "MST1R", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 922, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs35917071", + "strongest_snp_risk_allele": "rs35917071-T", + "or_or_beta": "0.0215", + "ci_text": "[0.016-0.027] unit increase", + "p_value": "7E-15", + "pvalue_mlog": "14.154901959985743", + "mapped_gene": "MON1A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 923, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12631248", + "strongest_snp_risk_allele": "rs12631248-G", + "or_or_beta": "0.0233", + "ci_text": "[0.018-0.029] unit increase", + "p_value": "4E-18", + "pvalue_mlog": "17.397940008672037", + "mapped_gene": "RBM6", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 924, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs13100173", + "strongest_snp_risk_allele": "rs13100173-G", + "or_or_beta": "0.0103", + "ci_text": "[0.0078-0.0128] unit decrease", + "p_value": "4E-15", + "pvalue_mlog": "14.397940008672037", + "mapped_gene": "HYAL3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 925, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs73072483", + "strongest_snp_risk_allele": "rs73072483-G", + "or_or_beta": "0.0165", + "ci_text": "[0.012-0.021] unit increase", + "p_value": "4E-11", + "pvalue_mlog": "10.397940008672037", + "mapped_gene": "DOCK3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 926, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs55966607", + "strongest_snp_risk_allele": "rs55966607-C", + "or_or_beta": "0.0151", + "ci_text": "[0.0098-0.0204] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "DOCK3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 927, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10433609", + "strongest_snp_risk_allele": "rs10433609-T", + "or_or_beta": "0.0138", + "ci_text": "[0.0099-0.0177] unit decrease", + "p_value": "6E-12", + "pvalue_mlog": "11.221848749616356", + "mapped_gene": "DOCK3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 928, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs115262152", + "strongest_snp_risk_allele": "rs115262152-C", + "or_or_beta": "0.0169", + "ci_text": "[0.011-0.023] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "GRM2 - IQCF6", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 929, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10787481", + "strongest_snp_risk_allele": "rs10787481-G", + "or_or_beta": "0.0092", + "ci_text": "[0.0061-0.0123] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "TCF7L2 - RNU7-165P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 930, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs9664945", + "strongest_snp_risk_allele": "rs9664945-G", + "or_or_beta": "0.0097", + "ci_text": "[0.0066-0.0128] unit decrease", + "p_value": "6E-10", + "pvalue_mlog": "9.221848749616356", + "mapped_gene": "VWA2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 931, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1681720", + "strongest_snp_risk_allele": "rs1681720-G", + "or_or_beta": "0.0098", + "ci_text": "[0.0067-0.0129] unit decrease", + "p_value": "8E-10", + "pvalue_mlog": "9.096910013008056", + "mapped_gene": "HSPA12A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 932, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2170862", + "strongest_snp_risk_allele": "rs2170862-G", + "or_or_beta": "0.0129", + "ci_text": "[0.0098-0.016] unit decrease", + "p_value": "4E-15", + "pvalue_mlog": "14.397940008672037", + "mapped_gene": "ENO4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 933, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs72641394", + "strongest_snp_risk_allele": "rs72641394-C", + "or_or_beta": "0.0172", + "ci_text": "[0.012-0.022] unit increase", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "CACUL1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 934, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4523610", + "strongest_snp_risk_allele": "rs4523610-C", + "or_or_beta": "0.011", + "ci_text": "[0.0075-0.0145] unit increase", + "p_value": "8E-10", + "pvalue_mlog": "9.096910013008056", + "mapped_gene": "NACAP2 - RPL21P16", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 935, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12218544", + "strongest_snp_risk_allele": "rs12218544-G", + "or_or_beta": "0.0155", + "ci_text": "[0.011-0.02] unit increase", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "RPS26P39 - LINC02641", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 936, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs705128", + "strongest_snp_risk_allele": "rs705128-G", + "or_or_beta": "0.0118", + "ci_text": "[0.0087-0.0149] unit decrease", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "LINC02641", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 937, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs845085", + "strongest_snp_risk_allele": "rs845085-G", + "or_or_beta": "0.011", + "ci_text": "[0.0083-0.0137] unit increase", + "p_value": "4E-16", + "pvalue_mlog": "15.397940008672037", + "mapped_gene": "LINC02641", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 938, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7923382", + "strongest_snp_risk_allele": "rs7923382-C", + "or_or_beta": "0.0111", + "ci_text": "[0.0076-0.0146] unit decrease", + "p_value": "8E-10", + "pvalue_mlog": "9.096910013008056", + "mapped_gene": "NPM1P31 - ZRANB1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 939, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs17636031", + "strongest_snp_risk_allele": "rs17636031-C", + "or_or_beta": "0.0154", + "ci_text": "[0.012-0.019] unit increase", + "p_value": "8E-21", + "pvalue_mlog": "20.096910013008056", + "mapped_gene": "NPM1P31 - ZRANB1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 940, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12220302", + "strongest_snp_risk_allele": "rs12220302-G", + "or_or_beta": "0.0107", + "ci_text": "[0.0074-0.014] unit decrease", + "p_value": "4E-10", + "pvalue_mlog": "9.397940008672037", + "mapped_gene": "NPM1P31 - ZRANB1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 941, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11245482", + "strongest_snp_risk_allele": "rs11245482-C", + "or_or_beta": "0.0096", + "ci_text": "[0.0065-0.0127] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "CTBP2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 942, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs75947329", + "strongest_snp_risk_allele": "rs75947329-G", + "or_or_beta": "0.0497", + "ci_text": "[0.035-0.064] unit increase", + "p_value": "4E-11", + "pvalue_mlog": "10.397940008672037", + "mapped_gene": "EBF3 - C10orf143", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 943, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11017772", + "strongest_snp_risk_allele": "rs11017772-C", + "or_or_beta": "0.0106", + "ci_text": "[0.0069-0.0143] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "TCERG1L", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 944, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4880341", + "strongest_snp_risk_allele": "rs4880341-C", + "or_or_beta": "0.013", + "ci_text": "[0.01-0.016] unit increase", + "p_value": "1E-17", + "pvalue_mlog": "17.0", + "mapped_gene": "JAKMIP3", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 945, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2474329", + "strongest_snp_risk_allele": "rs2474329-C", + "or_or_beta": "0.0086", + "ci_text": "[0.0055-0.0117] unit decrease", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "LRRC27", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 946, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs74383458", + "strongest_snp_risk_allele": "rs74383458-C", + "or_or_beta": "0.0255", + "ci_text": "[0.017-0.034] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "PWWP2B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 947, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2786887", + "strongest_snp_risk_allele": "rs2786887-G", + "or_or_beta": "0.0149", + "ci_text": "[0.01-0.02] unit increase", + "p_value": "7E-10", + "pvalue_mlog": "9.154901959985743", + "mapped_gene": "INPP5A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 948, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7116130", + "strongest_snp_risk_allele": "rs7116130-C", + "or_or_beta": "0.0087", + "ci_text": "[0.0056-0.0118] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "PSMD13", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 949, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11246136", + "strongest_snp_risk_allele": "rs11246136-C", + "or_or_beta": "0.0186", + "ci_text": "[0.014-0.024] unit increase", + "p_value": "5E-13", + "pvalue_mlog": "12.301029995663981", + "mapped_gene": "B4GALNT4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 950, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs12793222", + "strongest_snp_risk_allele": "rs12793222-G", + "or_or_beta": "0.0094", + "ci_text": "[0.0063-0.0125] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "LRRC56", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 951, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4963153", + "strongest_snp_risk_allele": "rs4963153-G", + "or_or_beta": "0.0094", + "ci_text": "[0.0065-0.0123] unit decrease", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "SLC25A22", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 952, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7126805", + "strongest_snp_risk_allele": "rs7126805-G", + "or_or_beta": "0.0103", + "ci_text": "[0.0074-0.0132] unit decrease", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": "CRACR2B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 953, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs34037130", + "strongest_snp_risk_allele": "rs34037130-G", + "or_or_beta": "0.0394", + "ci_text": "[0.026-0.053] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "CD151", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 954, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs72906474", + "strongest_snp_risk_allele": "rs72906474-G", + "or_or_beta": "0.0145", + "ci_text": "[0.011-0.018] unit increase", + "p_value": "3E-17", + "pvalue_mlog": "16.522878745280337", + "mapped_gene": "SMARCC1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 955, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs75569535", + "strongest_snp_risk_allele": "rs75569535-G", + "or_or_beta": "0.0359", + "ci_text": "[0.026-0.046] unit increase", + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "MAP4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 956, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs35761247", + "strongest_snp_risk_allele": "rs35761247-G", + "or_or_beta": "0.0175", + "ci_text": "[0.012-0.023] unit increase", + "p_value": "1E-9", + "pvalue_mlog": "9.0", + "mapped_gene": "COL7A1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 957, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs553317539", + "strongest_snp_risk_allele": "rs553317539-GA", + "or_or_beta": "0.0527", + "ci_text": "[0.035-0.071] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "PRKAR2A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 958, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs62262471", + "strongest_snp_risk_allele": "rs62262471-G", + "or_or_beta": "0.0256", + "ci_text": "[0.019-0.032] unit increase", + "p_value": "1E-15", + "pvalue_mlog": "15.0", + "mapped_gene": "P4HTM", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 959, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7617480", + "strongest_snp_risk_allele": "rs7617480-C", + "or_or_beta": "0.0092", + "ci_text": "[0.0061-0.0123] unit decrease", + "p_value": "7E-9", + "pvalue_mlog": "8.154901959985743", + "mapped_gene": "KLHDC8B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 960, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs73074821", + "strongest_snp_risk_allele": "rs73074821-G", + "or_or_beta": "0.0292", + "ci_text": "[0.021-0.037] unit decrease", + "p_value": "5E-12", + "pvalue_mlog": "11.301029995663981", + "mapped_gene": "DAG1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 961, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2230590", + "strongest_snp_risk_allele": "rs2230590-C", + "or_or_beta": "0.0211", + "ci_text": "[0.019-0.024] unit increase", + "p_value": "3E-56", + "pvalue_mlog": "55.52287874528034", + "mapped_gene": "MST1R", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 962, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs946185", + "strongest_snp_risk_allele": "rs946185-G", + "or_or_beta": "0.0106", + "ci_text": "[0.0079-0.0133] unit decrease", + "p_value": "1E-14", + "pvalue_mlog": "14.0", + "mapped_gene": "ADK", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 963, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10824226", + "strongest_snp_risk_allele": "rs10824226-G", + "or_or_beta": "0.0246", + "ci_text": "[0.017-0.033] unit increase", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "ADK - FAM32CP", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 964, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3088142", + "strongest_snp_risk_allele": "rs3088142-C", + "or_or_beta": "0.0095", + "ci_text": "[0.0068-0.0122] unit decrease", + "p_value": "2E-12", + "pvalue_mlog": "11.698970004336019", + "mapped_gene": "DUSP13B, DUSP13B, DUSP13A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 965, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7911113", + "strongest_snp_risk_allele": "rs7911113-G", + "or_or_beta": "0.0117", + "ci_text": "[0.0078-0.0156] unit decrease", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "LRMDA", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 966, + "study_accession": "GCST90255478", + "disease_trait": "Height", + "study": "Genome-wide study on 72,298 individuals in Korean biobank data for 76 traits.", + "snps": "chr4:17973172", + "strongest_snp_risk_allele": "chr4:17973172-?", + "or_or_beta": "0.03573", + "ci_text": "[0.025-0.046] unit increase", + "p_value": "2E-11", + "pvalue_mlog": "10.698970004336019", + "mapped_gene": null, + "initial_sample_size": "251,000 East Asian ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 967, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4745794", + "strongest_snp_risk_allele": "rs4745794-G", + "or_or_beta": "0.012", + "ci_text": "[0.0091-0.0149] unit increase", + "p_value": "8E-15", + "pvalue_mlog": "14.096910013008056", + "mapped_gene": "LRMDA", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 968, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11001963", + "strongest_snp_risk_allele": "rs11001963-C", + "or_or_beta": "0.0107", + "ci_text": "[0.0076-0.0138] unit decrease", + "p_value": "8E-12", + "pvalue_mlog": "11.096910013008056", + "mapped_gene": "KCNMA1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 969, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1247785", + "strongest_snp_risk_allele": "rs1247785-C", + "or_or_beta": "0.0083", + "ci_text": "[0.0054-0.0112] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "KCNMA1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 970, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1108616", + "strongest_snp_risk_allele": "rs1108616-G", + "or_or_beta": "0.0096", + "ci_text": "[0.0067-0.0125] unit decrease", + "p_value": "3E-10", + "pvalue_mlog": "9.522878745280337", + "mapped_gene": "ZMIZ1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 971, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7899106", + "strongest_snp_risk_allele": "rs7899106-G", + "or_or_beta": "0.0342", + "ci_text": "[0.028-0.041] unit increase", + "p_value": "3E-24", + "pvalue_mlog": "23.522878745280337", + "mapped_gene": "GRID1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 972, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1917152", + "strongest_snp_risk_allele": "rs1917152-C", + "or_or_beta": "0.0097", + "ci_text": "[0.0064-0.013] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "GRID1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 973, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10887578", + "strongest_snp_risk_allele": "rs10887578-G", + "or_or_beta": "0.0113", + "ci_text": "[0.0084-0.0142] unit decrease", + "p_value": "2E-13", + "pvalue_mlog": "12.698970004336019", + "mapped_gene": "GRID1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 974, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2631681", + "strongest_snp_risk_allele": "rs2631681-C", + "or_or_beta": "0.0099", + "ci_text": "[0.0072-0.0126] unit increase", + "p_value": "3E-12", + "pvalue_mlog": "11.522878745280337", + "mapped_gene": "PCGF5", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 975, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2497306", + "strongest_snp_risk_allele": "rs2497306-C", + "or_or_beta": "0.0076", + "ci_text": "[0.0051-0.0101] unit decrease", + "p_value": "9E-9", + "pvalue_mlog": "8.045757490560675", + "mapped_gene": "Y_RNA - EXOC6", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 976, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs35808802", + "strongest_snp_risk_allele": "rs35808802-C", + "or_or_beta": "0.0154", + "ci_text": "[0.0099-0.0209] unit decrease", + "p_value": "4E-8", + "pvalue_mlog": "7.3979400086720375", + "mapped_gene": "SORBS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 977, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs577525", + "strongest_snp_risk_allele": "rs577525-C", + "or_or_beta": "0.014", + "ci_text": "[0.011-0.017] unit increase", + "p_value": "7E-20", + "pvalue_mlog": "19.154901959985743", + "mapped_gene": "CRTAC1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 978, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4919186", + "strongest_snp_risk_allele": "rs4919186-G", + "or_or_beta": "0.0232", + "ci_text": "[0.016-0.03] unit increase", + "p_value": "2E-10", + "pvalue_mlog": "9.698970004336019", + "mapped_gene": "R3HCC1L", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 979, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1983864", + "strongest_snp_risk_allele": "rs1983864-G", + "or_or_beta": "0.0156", + "ci_text": "[0.013-0.018] unit decrease", + "p_value": "3E-29", + "pvalue_mlog": "28.522878745280337", + "mapped_gene": "LOXL4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 980, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs2216183", + "strongest_snp_risk_allele": "rs2216183-G", + "or_or_beta": "0.0094", + "ci_text": "[0.0063-0.0125] unit increase", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "LINC01811 - FECHP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 981, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11921432", + "strongest_snp_risk_allele": "rs11921432-C", + "or_or_beta": "0.0199", + "ci_text": "[0.015-0.025] unit increase", + "p_value": "6E-16", + "pvalue_mlog": "15.221848749616356", + "mapped_gene": "FECHP1 - KRT8P18", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 982, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs1455326", + "strongest_snp_risk_allele": "rs1455326-G", + "or_or_beta": "0.0099", + "ci_text": "[0.007-0.0128] unit increase", + "p_value": "1E-10", + "pvalue_mlog": "10.0", + "mapped_gene": "RNU6-243P - ARPP21", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 983, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs79360638", + "strongest_snp_risk_allele": "rs79360638-C", + "or_or_beta": "0.0193", + "ci_text": "[0.013-0.026] unit increase", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "RNU6-243P - ARPP21", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 984, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs13062093", + "strongest_snp_risk_allele": "rs13062093-G", + "or_or_beta": "0.0116", + "ci_text": "[0.0085-0.0147] unit increase", + "p_value": "7E-14", + "pvalue_mlog": "13.154901959985743", + "mapped_gene": "RNU6-243P - ARPP21", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 985, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11926767", + "strongest_snp_risk_allele": "rs11926767-C", + "or_or_beta": "0.01", + "ci_text": "[0.0071-0.0129] unit decrease", + "p_value": "8E-11", + "pvalue_mlog": "10.096910013008056", + "mapped_gene": "ACVR2B", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 986, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs7374289", + "strongest_snp_risk_allele": "rs7374289-C", + "or_or_beta": "0.0086", + "ci_text": "[0.0057-0.0115] unit decrease", + "p_value": "8E-9", + "pvalue_mlog": "8.096910013008056", + "mapped_gene": "SCN5A", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 987, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs9852315", + "strongest_snp_risk_allele": "rs9852315-G", + "or_or_beta": "0.0103", + "ci_text": "[0.0072-0.0134] unit increase", + "p_value": "9E-11", + "pvalue_mlog": "10.045757490560675", + "mapped_gene": "ULK4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 988, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs10460960", + "strongest_snp_risk_allele": "rs10460960-G", + "or_or_beta": "0.0199", + "ci_text": "[0.015-0.024] unit decrease", + "p_value": "4E-18", + "pvalue_mlog": "17.397940008672037", + "mapped_gene": "CCK - SALL4P6", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 989, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs33485", + "strongest_snp_risk_allele": "rs33485-C", + "or_or_beta": "0.0163", + "ci_text": "[0.013-0.02] unit increase", + "p_value": "2E-20", + "pvalue_mlog": "19.69897000433602", + "mapped_gene": "EIF4BP4 - LYZL4", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 990, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs9828788", + "strongest_snp_risk_allele": "rs9828788-G", + "or_or_beta": "0.0124", + "ci_text": "[0.0089-0.0159] unit decrease", + "p_value": "1E-11", + "pvalue_mlog": "11.0", + "mapped_gene": "LYZL4 - RPL35AP8", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 991, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs6805421", + "strongest_snp_risk_allele": "rs6805421-G", + "or_or_beta": "0.0078", + "ci_text": "[0.0051-0.0105] unit decrease", + "p_value": "1E-8", + "pvalue_mlog": "8.0", + "mapped_gene": "KLHL40", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 992, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs112066175", + "strongest_snp_risk_allele": "rs112066175-C", + "or_or_beta": "0.0399", + "ci_text": "[0.027-0.053] unit decrease", + "p_value": "2E-9", + "pvalue_mlog": "8.698970004336019", + "mapped_gene": "CYP8B1, ACKR2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 993, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs73083006", + "strongest_snp_risk_allele": "rs73083006-G", + "or_or_beta": "0.0241", + "ci_text": "[0.016-0.033] unit increase", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "ANO10", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 994, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs9824340", + "strongest_snp_risk_allele": "rs9824340-C", + "or_or_beta": "0.0117", + "ci_text": "[0.009-0.0144] unit decrease", + "p_value": "3E-16", + "pvalue_mlog": "15.522878745280337", + "mapped_gene": "ABHD5 - RNU6-367P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 995, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs3852012", + "strongest_snp_risk_allele": "rs3852012-G", + "or_or_beta": "0.0126", + "ci_text": "[0.0095-0.0157] unit increase", + "p_value": "2E-15", + "pvalue_mlog": "14.698970004336019", + "mapped_gene": "ABHD5 - RNU6-367P", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 996, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4682718", + "strongest_snp_risk_allele": "rs4682718-G", + "or_or_beta": "0.0137", + "ci_text": "[0.0098-0.0176] unit increase", + "p_value": "4E-12", + "pvalue_mlog": "11.397940008672037", + "mapped_gene": "MIR138-1 - TOPAZ1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 997, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs112401139", + "strongest_snp_risk_allele": "rs112401139-G", + "or_or_beta": "0.0632", + "ci_text": "[0.041-0.085] unit decrease", + "p_value": "2E-8", + "pvalue_mlog": "7.698970004336019", + "mapped_gene": "MIR138-1 - TOPAZ1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 998, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs148154566", + "strongest_snp_risk_allele": "rs148154566-C", + "or_or_beta": "0.049", + "ci_text": "[0.033-0.065] unit increase", + "p_value": "4E-9", + "pvalue_mlog": "8.397940008672037", + "mapped_gene": "EI24P3 - ZKSCAN7-AS1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 999, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs56084453", + "strongest_snp_risk_allele": "rs56084453-G", + "or_or_beta": "0.0118", + "ci_text": "[0.0087-0.0149] unit decrease", + "p_value": "3E-13", + "pvalue_mlog": "12.522878745280337", + "mapped_gene": "ZNF502", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 1000, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11928003", + "strongest_snp_risk_allele": "rs11928003-G", + "or_or_beta": "0.0094", + "ci_text": "[0.0061-0.0127] unit decrease", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "CDCP1", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 1001, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs11715071", + "strongest_snp_risk_allele": "rs11715071-C", + "or_or_beta": "0.0094", + "ci_text": "[0.0061-0.0127] unit increase", + "p_value": "3E-8", + "pvalue_mlog": "7.522878745280337", + "mapped_gene": "CDCP1 - RPS24P8", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + }, + { + "id": 1002, + "study_accession": "GCST90255621", + "disease_trait": "Body mass index", + "study": "Genomics and phenomics of body mass index reveals a complex disease network.", + "snps": "rs4683096", + "strongest_snp_risk_allele": "rs4683096-G", + "or_or_beta": "0.0101", + "ci_text": "[0.0072-0.013] unit decrease", + "p_value": "6E-11", + "pvalue_mlog": "10.221848749616356", + "mapped_gene": "U3 - LARS2", + "initial_sample_size": "1,122,049 European ancestry individuals", + "replication_sample_size": "NA" + } +] diff --git a/tests/fixtures/reports.json b/tests/fixtures/reports.json new file mode 100644 index 0000000..ce0bf5c --- /dev/null +++ b/tests/fixtures/reports.json @@ -0,0 +1,3705 @@ +{ + "results": [ + { + "studyId": 1, + "gwasId": "GCST1", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs0-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "decreased", + "matchedSnp": "rs0", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 2, + "gwasId": "GCST2", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs1-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.3, + "riskLevel": "increased", + "matchedSnp": "rs1", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 3, + "gwasId": "GCST3", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs2-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.4, + "riskLevel": "increased", + "matchedSnp": "rs2", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 4, + "gwasId": "GCST4", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs3-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs3", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 5, + "gwasId": "GCST5", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs4-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs4", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 6, + "gwasId": "GCST6", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs5-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.7, + "riskLevel": "increased", + "matchedSnp": "rs5", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 7, + "gwasId": "GCST7", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs6-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs6", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 8, + "gwasId": "GCST8", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs7-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.9, + "riskLevel": "increased", + "matchedSnp": "rs7", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 9, + "gwasId": "GCST9", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs8-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs8", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 10, + "gwasId": "GCST10", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs9-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs9", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 11, + "gwasId": "GCST11", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs10-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.3, + "riskLevel": "increased", + "matchedSnp": "rs10", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 12, + "gwasId": "GCST12", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs11-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.4, + "riskLevel": "increased", + "matchedSnp": "rs11", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 13, + "gwasId": "GCST13", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs12-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "decreased", + "matchedSnp": "rs12", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 14, + "gwasId": "GCST14", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs13-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.6, + "riskLevel": "increased", + "matchedSnp": "rs13", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 15, + "gwasId": "GCST15", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs14-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.7, + "riskLevel": "increased", + "matchedSnp": "rs14", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 16, + "gwasId": "GCST16", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs15-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs15", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 17, + "gwasId": "GCST17", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs16-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs16", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 18, + "gwasId": "GCST18", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs17-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 2, + "riskLevel": "increased", + "matchedSnp": "rs17", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 19, + "gwasId": "GCST19", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs18-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs18", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 20, + "gwasId": "GCST20", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs19-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.3, + "riskLevel": "increased", + "matchedSnp": "rs19", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 21, + "gwasId": "GCST21", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs20-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs20", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 22, + "gwasId": "GCST22", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs21-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs21", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 23, + "gwasId": "GCST23", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs22-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.6, + "riskLevel": "increased", + "matchedSnp": "rs22", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 24, + "gwasId": "GCST24", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs23-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.7, + "riskLevel": "increased", + "matchedSnp": "rs23", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 25, + "gwasId": "GCST25", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs24-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "decreased", + "matchedSnp": "rs24", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 26, + "gwasId": "GCST26", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs25-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.9, + "riskLevel": "increased", + "matchedSnp": "rs25", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 27, + "gwasId": "GCST27", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs26-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 2, + "riskLevel": "increased", + "matchedSnp": "rs26", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 28, + "gwasId": "GCST28", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs27-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs27", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 29, + "gwasId": "GCST29", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs28-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs28", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 30, + "gwasId": "GCST30", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs29-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.4, + "riskLevel": "increased", + "matchedSnp": "rs29", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 31, + "gwasId": "GCST31", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs30-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs30", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 32, + "gwasId": "GCST32", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs31-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.6, + "riskLevel": "increased", + "matchedSnp": "rs31", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 33, + "gwasId": "GCST33", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs32-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs32", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 34, + "gwasId": "GCST34", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs33-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs33", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 35, + "gwasId": "GCST35", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs34-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.9, + "riskLevel": "increased", + "matchedSnp": "rs34", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 36, + "gwasId": "GCST36", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs35-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 2, + "riskLevel": "increased", + "matchedSnp": "rs35", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 37, + "gwasId": "GCST37", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs36-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "decreased", + "matchedSnp": "rs36", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 38, + "gwasId": "GCST38", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs37-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.3, + "riskLevel": "increased", + "matchedSnp": "rs37", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 39, + "gwasId": "GCST39", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs38-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.4, + "riskLevel": "increased", + "matchedSnp": "rs38", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 40, + "gwasId": "GCST40", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs39-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs39", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 41, + "gwasId": "GCST41", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs40-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs40", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 42, + "gwasId": "GCST42", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs41-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.7, + "riskLevel": "increased", + "matchedSnp": "rs41", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 43, + "gwasId": "GCST43", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs42-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs42", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 44, + "gwasId": "GCST44", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs43-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.9, + "riskLevel": "increased", + "matchedSnp": "rs43", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 45, + "gwasId": "GCST45", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs44-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs44", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 46, + "gwasId": "GCST46", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs45-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs45", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 47, + "gwasId": "GCST47", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs46-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.3, + "riskLevel": "increased", + "matchedSnp": "rs46", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 48, + "gwasId": "GCST48", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs47-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.4, + "riskLevel": "increased", + "matchedSnp": "rs47", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 49, + "gwasId": "GCST49", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs48-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "decreased", + "matchedSnp": "rs48", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 50, + "gwasId": "GCST50", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs49-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.6, + "riskLevel": "increased", + "matchedSnp": "rs49", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 51, + "gwasId": "GCST51", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs50-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.7, + "riskLevel": "increased", + "matchedSnp": "rs50", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 52, + "gwasId": "GCST52", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs51-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs51", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 53, + "gwasId": "GCST53", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs52-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs52", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 54, + "gwasId": "GCST54", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs53-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 2, + "riskLevel": "increased", + "matchedSnp": "rs53", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 55, + "gwasId": "GCST55", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs54-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs54", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 56, + "gwasId": "GCST56", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs55-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.3, + "riskLevel": "increased", + "matchedSnp": "rs55", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 57, + "gwasId": "GCST57", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs56-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs56", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 58, + "gwasId": "GCST58", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs57-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs57", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 59, + "gwasId": "GCST59", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs58-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.6, + "riskLevel": "increased", + "matchedSnp": "rs58", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 60, + "gwasId": "GCST60", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs59-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.7, + "riskLevel": "increased", + "matchedSnp": "rs59", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 61, + "gwasId": "GCST61", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs60-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "decreased", + "matchedSnp": "rs60", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 62, + "gwasId": "GCST62", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs61-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.9, + "riskLevel": "increased", + "matchedSnp": "rs61", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 63, + "gwasId": "GCST63", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs62-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 2, + "riskLevel": "increased", + "matchedSnp": "rs62", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 64, + "gwasId": "GCST64", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs63-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs63", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 65, + "gwasId": "GCST65", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs64-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs64", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 66, + "gwasId": "GCST66", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs65-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.4, + "riskLevel": "increased", + "matchedSnp": "rs65", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 67, + "gwasId": "GCST67", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs66-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs66", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 68, + "gwasId": "GCST68", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs67-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.6, + "riskLevel": "increased", + "matchedSnp": "rs67", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 69, + "gwasId": "GCST69", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs68-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs68", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 70, + "gwasId": "GCST70", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs69-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs69", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 71, + "gwasId": "GCST71", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs70-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.9, + "riskLevel": "increased", + "matchedSnp": "rs70", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 72, + "gwasId": "GCST72", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs71-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 2, + "riskLevel": "increased", + "matchedSnp": "rs71", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 73, + "gwasId": "GCST73", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs72-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "decreased", + "matchedSnp": "rs72", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 74, + "gwasId": "GCST74", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs73-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.3, + "riskLevel": "increased", + "matchedSnp": "rs73", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 75, + "gwasId": "GCST75", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs74-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.4, + "riskLevel": "increased", + "matchedSnp": "rs74", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 76, + "gwasId": "GCST76", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs75-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs75", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 77, + "gwasId": "GCST77", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs76-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs76", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 78, + "gwasId": "GCST78", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs77-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.7, + "riskLevel": "increased", + "matchedSnp": "rs77", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 79, + "gwasId": "GCST79", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs78-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs78", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 80, + "gwasId": "GCST80", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs79-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.9, + "riskLevel": "increased", + "matchedSnp": "rs79", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 81, + "gwasId": "GCST81", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs80-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs80", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 82, + "gwasId": "GCST82", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs81-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs81", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 83, + "gwasId": "GCST83", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs82-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.3, + "riskLevel": "increased", + "matchedSnp": "rs82", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 84, + "gwasId": "GCST84", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs83-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.4, + "riskLevel": "increased", + "matchedSnp": "rs83", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 85, + "gwasId": "GCST85", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs84-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "decreased", + "matchedSnp": "rs84", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 86, + "gwasId": "GCST86", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs85-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.6, + "riskLevel": "increased", + "matchedSnp": "rs85", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 87, + "gwasId": "GCST87", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs86-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.7, + "riskLevel": "increased", + "matchedSnp": "rs86", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 88, + "gwasId": "GCST88", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs87-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs87", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 89, + "gwasId": "GCST89", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs88-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs88", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 90, + "gwasId": "GCST90", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs89-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 2, + "riskLevel": "increased", + "matchedSnp": "rs89", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 91, + "gwasId": "GCST91", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs90-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs90", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 92, + "gwasId": "GCST92", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs91-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.3, + "riskLevel": "increased", + "matchedSnp": "rs91", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 93, + "gwasId": "GCST93", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs92-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs92", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 94, + "gwasId": "GCST94", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs93-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs93", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 95, + "gwasId": "GCST95", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs94-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.6, + "riskLevel": "increased", + "matchedSnp": "rs94", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 96, + "gwasId": "GCST96", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs95-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.7, + "riskLevel": "increased", + "matchedSnp": "rs95", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 97, + "gwasId": "GCST97", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs96-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "decreased", + "matchedSnp": "rs96", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 98, + "gwasId": "GCST98", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs97-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.9, + "riskLevel": "increased", + "matchedSnp": "rs97", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 99, + "gwasId": "GCST99", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs98-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 2, + "riskLevel": "increased", + "matchedSnp": "rs98", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 100, + "gwasId": "GCST100", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs99-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs99", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 101, + "gwasId": "GCST101", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs100-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs100", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 102, + "gwasId": "GCST102", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs101-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.4, + "riskLevel": "increased", + "matchedSnp": "rs101", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 103, + "gwasId": "GCST103", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs102-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs102", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 104, + "gwasId": "GCST104", + "traitName": "Breast cancer", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs103-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.6, + "riskLevel": "increased", + "matchedSnp": "rs103", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 105, + "gwasId": "GCST105", + "traitName": "Height", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs104-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "increased", + "matchedSnp": "rs104", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 106, + "gwasId": "GCST106", + "traitName": "Coronary heart disease", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs105-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 0.8, + "riskLevel": "decreased", + "matchedSnp": "rs105", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 107, + "gwasId": "GCST107", + "traitName": "Type 2 diabetes", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs106-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.9, + "riskLevel": "increased", + "matchedSnp": "rs106", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 108, + "gwasId": "GCST108", + "traitName": "Rheumatoid arthritis", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs107-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 2, + "riskLevel": "increased", + "matchedSnp": "rs107", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 109, + "gwasId": "GCST109", + "traitName": "Cognitive performance", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs108-A", + "effectSize": "1.2", + "effectType": "beta", + "riskScore": 0.4, + "riskLevel": "decreased", + "matchedSnp": "rs108", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + }, + { + "studyId": 110, + "gwasId": "GCST110", + "traitName": "Bone density", + "studyTitle": "Synthetic regression fixture", + "userGenotype": "AG", + "riskAllele": "rs109-A", + "effectSize": "1.2", + "effectType": "OR", + "riskScore": 1.3, + "riskLevel": "increased", + "matchedSnp": "rs109", + "analysisDate": "2026-01-01", + "pValue": "1e-10", + "pValueMlog": "10", + "mappedGene": "GENE", + "sampleSize": "10,000 participants", + "replicationSampleSize": "5000" + } + ], + "customization": { + "age": 42, + "genderAtBirth": "female", + "ethnicities": [ + "Example ancestry" + ], + "countriesOfOrigin": [ + "Example country" + ], + "personalConditions": [ + "coronary heart disease" + ], + "familyConditions": [ + "type 2 diabetes" + ], + "smokingHistory": "never-smoked", + "alcoholUse": "rare", + "diet": "regular", + "medications": [ + "example" + ] + }, + "cases": [ + { + "kind": "health", + "withHistory": false, + "selected": [ + { + "studyId": 18 + }, + { + "studyId": 27 + }, + { + "studyId": 36 + }, + { + "studyId": 54 + }, + { + "studyId": 63 + }, + { + "studyId": 72 + }, + { + "studyId": 90 + }, + { + "studyId": 99 + }, + { + "studyId": 108 + }, + { + "studyId": 8 + }, + { + "studyId": 26 + }, + { + "studyId": 35 + }, + { + "studyId": 44 + }, + { + "studyId": 62 + }, + { + "studyId": 71 + }, + { + "studyId": 80 + }, + { + "studyId": 98 + }, + { + "studyId": 107 + }, + { + "studyId": 6 + }, + { + "studyId": 15 + }, + { + "studyId": 24 + }, + { + "studyId": 42 + }, + { + "studyId": 51 + }, + { + "studyId": 60 + }, + { + "studyId": 78 + }, + { + "studyId": 87 + }, + { + "studyId": 96 + }, + { + "studyId": 14 + }, + { + "studyId": 23 + }, + { + "studyId": 32 + }, + { + "studyId": 4 + }, + { + "studyId": 7 + }, + { + "studyId": 10 + }, + { + "studyId": 16 + }, + { + "studyId": 19 + }, + { + "studyId": 22 + }, + { + "studyId": 28 + }, + { + "studyId": 31 + }, + { + "studyId": 34 + }, + { + "studyId": 40 + }, + { + "studyId": 43 + }, + { + "studyId": 46 + }, + { + "studyId": 52 + }, + { + "studyId": 55 + }, + { + "studyId": 58 + }, + { + "studyId": 64 + }, + { + "studyId": 67 + }, + { + "studyId": 70 + }, + { + "studyId": 76 + }, + { + "studyId": 79 + } + ], + "counts": {}, + "prompt": "You are a genetic counselor writing a personalized health insights report. Your goal is to surface insights the user does not already know from their symptoms alone.\n\n\nSTRONGEST ADDITIONAL ELEVATED SIGNALS (30):\nCognitive performance | OR 2.00x \u2191 | gene: GENE | snp: rs17 | genotype: AG (risk allele: rs17-A) | p: very strong\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs26 | genotype: AG (risk allele: rs26-A) | p: very strong\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs35 | genotype: AG (risk allele: rs35-A) | p: very strong\nBone density | OR 2.00x \u2191 | gene: GENE | snp: rs53 | genotype: AG (risk allele: rs53-A) | p: very strong\nHeight | OR 2.00x \u2191 | gene: GENE | snp: rs62 | genotype: AG (risk allele: rs62-A) | p: very strong\nType 2 diabetes | OR 2.00x \u2191 | gene: GENE | snp: rs71 | genotype: AG (risk allele: rs71-A) | p: very strong\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs89 | genotype: AG (risk allele: rs89-A) | p: very strong\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs98 | genotype: AG (risk allele: rs98-A) | p: very strong\nRheumatoid arthritis | OR 2.00x \u2191 | gene: GENE | snp: rs107 | genotype: AG (risk allele: rs107-A) | p: very strong\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs7 | genotype: AG (risk allele: rs7-A) | p: very strong\nBone density | OR 1.90x \u2191 | gene: GENE | snp: rs25 | genotype: AG (risk allele: rs25-A) | p: very strong\nHeight | OR 1.90x \u2191 | gene: GENE | snp: rs34 | genotype: AG (risk allele: rs34-A) | p: very strong\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs43 | genotype: AG (risk allele: rs43-A) | p: very strong\nBreast cancer | OR 1.90x \u2191 | gene: GENE | snp: rs61 | genotype: AG (risk allele: rs61-A) | p: very strong\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs70 | genotype: AG (risk allele: rs70-A) | p: very strong\nRheumatoid arthritis | OR 1.90x \u2191 | gene: GENE | snp: rs79 | genotype: AG (risk allele: rs79-A) | p: very strong\nHeight | OR 1.90x \u2191 | gene: GENE | snp: rs97 | genotype: AG (risk allele: rs97-A) | p: very strong\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs106 | genotype: AG (risk allele: rs106-A) | p: very strong\nBreast cancer | OR 1.70x \u2191 | gene: GENE | snp: rs5 | genotype: AG (risk allele: rs5-A) | p: very strong\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs14 | genotype: AG (risk allele: rs14-A) | p: very strong\nRheumatoid arthritis | OR 1.70x \u2191 | gene: GENE | snp: rs23 | genotype: AG (risk allele: rs23-A) | p: very strong\nHeight | OR 1.70x \u2191 | gene: GENE | snp: rs41 | genotype: AG (risk allele: rs41-A) | p: very strong\nType 2 diabetes | OR 1.70x \u2191 | gene: GENE | snp: rs50 | genotype: AG (risk allele: rs50-A) | p: very strong\nCognitive performance | OR 1.70x \u2191 | gene: GENE | snp: rs59 | genotype: AG (risk allele: rs59-A) | p: very strong\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs77 | genotype: AG (risk allele: rs77-A) | p: very strong\nRheumatoid arthritis | OR 1.70x \u2191 | gene: GENE | snp: rs86 | genotype: AG (risk allele: rs86-A) | p: very strong\nBone density | OR 1.70x \u2191 | gene: GENE | snp: rs95 | genotype: AG (risk allele: rs95-A) | p: very strong\nHeight | OR 1.60x \u2191 | gene: GENE | snp: rs13 | genotype: AG (risk allele: rs13-A) | p: very strong\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs22 | genotype: AG (risk allele: rs22-A) | p: very strong\nCognitive performance | OR 1.60x \u2191 | gene: GENE | snp: rs31 | genotype: AG (risk allele: rs31-A) | p: very strong\n\nSTRONGEST PROTECTIVE SIGNALS (20):\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs3 | genotype: AG (risk allele: rs3-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs6 | genotype: AG (risk allele: rs6-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs9 | genotype: AG (risk allele: rs9-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs15 | genotype: AG (risk allele: rs15-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs18 | genotype: AG (risk allele: rs18-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs21 | genotype: AG (risk allele: rs21-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs27 | genotype: AG (risk allele: rs27-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs30 | genotype: AG (risk allele: rs30-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs33 | genotype: AG (risk allele: rs33-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs39 | genotype: AG (risk allele: rs39-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs42 | genotype: AG (risk allele: rs42-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs45 | genotype: AG (risk allele: rs45-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs51 | genotype: AG (risk allele: rs51-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs54 | genotype: AG (risk allele: rs54-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs57 | genotype: AG (risk allele: rs57-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs63 | genotype: AG (risk allele: rs63-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs66 | genotype: AG (risk allele: rs66-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs69 | genotype: AG (risk allele: rs69-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs75 | genotype: AG (risk allele: rs75-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs78 | genotype: AG (risk allele: rs78-A) | p: very strong\n\nDATA FORMAT: Trait | Effect size (\u2191 elevated / \u2193 protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence | [matched condition]\n\nWrite a report organized by GENETIC MECHANISM (4-5 mechanisms). For each:\n- Name specific variants and explain effect sizes in plain, concrete terms\n- Identify what biological process is involved at a molecular level\n- Flag any OR > 5x as a large effect likely from a specialized study\n\nThen add:\n**Protective signals**: Associations where the allele is linked to lower rates in population studies. Use hedged language.\n**Most notable findings**: 4-5 bullets of the most striking discoveries.\n**What to investigate further**: 3-4 research threads the user could explore. Specific genes, pathways, or cross-trait connections with well-studied literature.\n\n**Hypotheses about you** (4 hypotheses, each 2-3 sentences)\nBased on the signal patterns in these results, write 4 specific hypotheses about this person's biology or lived experience. Each should be a concrete statement grounded in the strongest signals. Frame each as \"People with this signal pattern tend to...\" or \"This combination of variants is consistent with someone who...\". Be direct and specific. Reference specific genes or findings from this report.\n\nLanguage rules (strictly enforced):\n- These are population-level statistics. Write \"population studies associate this variant with X\", never \"your genome does X\" or deterministic personal claims.\n- Do not recommend clinical tests, doctors, or lifestyle changes.\n\n800-1000 words.\n\nAfter the report, append exactly this block (required, verbatim format):\n\nCHAT_QUESTIONS:\n- [a specific follow-up question about a gene, SNP, or mechanism from this report]\n- [a question about a cross-trait pattern or surprising finding]\n- [a question about a protective signal or novel finding outside the health history]\n- [a question about what the user's specific genotype means for one of the key findings]\n- [a question about a research thread worth exploring]\n\nQuestions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them." + }, + { + "kind": "health", + "withHistory": true, + "selected": [ + { + "studyId": 36, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 99, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 8, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 71, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 15, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 78, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 50, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 92, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 22, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 43, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 64, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 106, + "matchedCondition": "coronary heart disease" + }, + { + "studyId": 72, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 44, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 107, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 51, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 23, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 86, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 30, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 2, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 16, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 58, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 79, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 100, + "matchedCondition": "family history: type 2 diabetes" + }, + { + "studyId": 18 + }, + { + "studyId": 27 + }, + { + "studyId": 54 + }, + { + "studyId": 63 + }, + { + "studyId": 90 + }, + { + "studyId": 108 + }, + { + "studyId": 4 + }, + { + "studyId": 7 + }, + { + "studyId": 10 + }, + { + "studyId": 19 + }, + { + "studyId": 28 + }, + { + "studyId": 31 + }, + { + "studyId": 34 + }, + { + "studyId": 40 + }, + { + "studyId": 46 + }, + { + "studyId": 52 + }, + { + "studyId": 55 + }, + { + "studyId": 67 + }, + { + "studyId": 70 + }, + { + "studyId": 76 + }, + { + "studyId": 82 + }, + { + "studyId": 88 + }, + { + "studyId": 91 + }, + { + "studyId": 94 + }, + { + "studyId": 103 + } + ], + "counts": {}, + "prompt": "You are a genetic counselor writing a personalized health insights report. Your goal is to surface insights the user does not already know from their symptoms alone.\n\n\nEthnicities: Example ancestry\nCountries of ancestral origin: Example country\nGender assigned at birth: female\nAge: 42\nSmoking history: Never smoked\nAlcohol use: Rare\nCurrent medications/supplements: example\nDietary preferences: Regular diet (no restrictions)\nPersonal medical history: coronary heart disease\nFamily medical history: type 2 diabetes\n\nHEALTH HISTORY:\ncoronary heart disease\ntype 2 diabetes (family history)\n\nRESULTS MATCHED TO HEALTH HISTORY (24):\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs35 | genotype: AG (risk allele: rs35-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs98 | genotype: AG (risk allele: rs98-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs7 | genotype: AG (risk allele: rs7-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs70 | genotype: AG (risk allele: rs70-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs14 | genotype: AG (risk allele: rs14-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs77 | genotype: AG (risk allele: rs77-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 1.60x \u2191 | gene: GENE | snp: rs49 | genotype: AG (risk allele: rs49-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 1.30x \u2191 | gene: GENE | snp: rs91 | genotype: AG (risk allele: rs91-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs21 | genotype: AG (risk allele: rs21-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs42 | genotype: AG (risk allele: rs42-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs63 | genotype: AG (risk allele: rs63-A) | p: very strong [matched: coronary heart disease]\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs105 | genotype: AG (risk allele: rs105-A) | p: very strong [matched: coronary heart disease]\nType 2 diabetes | OR 2.00x \u2191 | gene: GENE | snp: rs71 | genotype: AG (risk allele: rs71-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs43 | genotype: AG (risk allele: rs43-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs106 | genotype: AG (risk allele: rs106-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 1.70x \u2191 | gene: GENE | snp: rs50 | genotype: AG (risk allele: rs50-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs22 | genotype: AG (risk allele: rs22-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs85 | genotype: AG (risk allele: rs85-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 1.40x \u2191 | gene: GENE | snp: rs29 | genotype: AG (risk allele: rs29-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 1.30x \u2191 | gene: GENE | snp: rs1 | genotype: AG (risk allele: rs1-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs15 | genotype: AG (risk allele: rs15-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs57 | genotype: AG (risk allele: rs57-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs78 | genotype: AG (risk allele: rs78-A) | p: very strong [matched: family history: type 2 diabetes]\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs99 | genotype: AG (risk allele: rs99-A) | p: very strong [matched: family history: type 2 diabetes]\n\nSTRONGEST ADDITIONAL ELEVATED SIGNALS (6):\nCognitive performance | OR 2.00x \u2191 | gene: GENE | snp: rs17 | genotype: AG (risk allele: rs17-A) | p: very strong\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs26 | genotype: AG (risk allele: rs26-A) | p: very strong\nBone density | OR 2.00x \u2191 | gene: GENE | snp: rs53 | genotype: AG (risk allele: rs53-A) | p: very strong\nHeight | OR 2.00x \u2191 | gene: GENE | snp: rs62 | genotype: AG (risk allele: rs62-A) | p: very strong\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs89 | genotype: AG (risk allele: rs89-A) | p: very strong\nRheumatoid arthritis | OR 2.00x \u2191 | gene: GENE | snp: rs107 | genotype: AG (risk allele: rs107-A) | p: very strong\n\nSTRONGEST PROTECTIVE SIGNALS (19):\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs3 | genotype: AG (risk allele: rs3-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs6 | genotype: AG (risk allele: rs6-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs9 | genotype: AG (risk allele: rs9-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs18 | genotype: AG (risk allele: rs18-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs27 | genotype: AG (risk allele: rs27-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs30 | genotype: AG (risk allele: rs30-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs33 | genotype: AG (risk allele: rs33-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs39 | genotype: AG (risk allele: rs39-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs45 | genotype: AG (risk allele: rs45-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs51 | genotype: AG (risk allele: rs51-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs54 | genotype: AG (risk allele: rs54-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs66 | genotype: AG (risk allele: rs66-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs69 | genotype: AG (risk allele: rs69-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs75 | genotype: AG (risk allele: rs75-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs81 | genotype: AG (risk allele: rs81-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs87 | genotype: AG (risk allele: rs87-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs90 | genotype: AG (risk allele: rs90-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs93 | genotype: AG (risk allele: rs93-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs102 | genotype: AG (risk allele: rs102-A) | p: very strong\n\nDATA FORMAT: Trait | Effect size (\u2191 elevated / \u2193 protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence | [matched condition]\n\nThe user already knows they have these conditions. Do NOT simply report \"you have variants for X and you reported X.\" That adds no value.\n\nInstead, write a report that tells them something genuinely new. Structure it as follows:\n\n**1. Genetic mechanisms underlying your conditions**\nExplain WHY the user has certain conditions at a biological pathway level. What mechanism do the variants operate through? How do multiple variants converge on the same pathway? Be specific: not \"increases inflammation\" but which cells, which signaling molecules, which process.\n\n**2. What your genome protects you from**\nUse the protective signals section. Identify any large protective effects, especially those that counterbalance elevated risks in the same pathway or protect against conditions that run in the family. These are often the most surprising and useful findings.\n\n**3. Signals outside your known health history**\nFrom the strongest overall signals, identify anything that points to conditions or traits NOT mentioned in the user's health history. These are genuinely novel; flag them clearly as \"you may not have known this.\"\n\n**4. Most notable findings** (4-5 bullets)\nThe most surprising, largest-effect, or cross-cutting discoveries. Prioritize findings that the user could not have known just from their symptoms.\n\n**5. What to investigate further**\n3-4 specific research threads the user could pursue to understand their genetic dynamics better. Frame these as topics to read about or questions to explore, not clinical actions. Focus on: specific genes that appeared repeatedly and have well-studied literature, pathway connections worth understanding, or cross-trait mechanisms that link seemingly unrelated findings.\n\n**6. Hypotheses about you** (4 hypotheses, each 2-3 sentences)\nBased on the signal patterns in these results, write 4 specific hypotheses about this person's biology or lived experience. Each should be a concrete statement grounded in the strongest signals. Frame each as \"People with this signal pattern tend to...\" or \"This combination of variants is consistent with someone who...\". Be direct and specific. These should feel like genuine insights, not generic disclaimers. Reference specific genes or findings from this report.\n\nLanguage rules (strictly enforced):\n- These are population-level GWAS associations, not individual predictions. Write accordingly: \"population studies associate this variant with X\", \"carriers of this allele show\", \"this signal is consistent with\"; never \"your genome does X\" or \"this drives your Y\".\n- For mechanisms: describe what the gene/pathway does in the population literature, not what it is doing in this person's body. \"BTBD9 is associated with dopamine regulation in RLS cohorts\" not \"your BTBD9 variants are disrupting your dopamine signaling.\"\n- For protective signals: \"population studies find this allele associated with lower rates of X\" not \"your genome protects you from X.\"\n- Include rsIDs when mentioning specific variants (e.g., \"rs429358, an APOE variant\"). Where the user's genotype is informative (heterozygous vs homozygous), note it: \"carrying one copy of the risk allele\" vs \"homozygous for the risk allele.\"\n- Flag any OR > 5x as \"large effect, likely a specialized or rare-variant study; treat as uncertain.\" Do not anchor conclusions on it.\n- Do not recommend clinical tests, doctors, or lifestyle changes.\n- Distinguish between well-replicated signals (strong p-value label, named gene) and single suggestive hits.\n- 700-900 words total\n\nAfter the report, append exactly this block (required, verbatim format):\n\nCHAT_QUESTIONS:\n- [a specific follow-up question about a gene, SNP, or mechanism from this report]\n- [a question about a cross-trait pattern or surprising finding]\n- [a question about a protective signal or novel finding outside the health history]\n- [a question about what the user's specific genotype means for one of the key findings]\n- [a question about a research thread worth exploring]\n\nQuestions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them." + }, + { + "kind": "healthspan", + "withHistory": false, + "selected": [ + { + "studyId": 36, + "domain": "cardiovascular" + }, + { + "studyId": 99, + "domain": "cardiovascular" + }, + { + "studyId": 8, + "domain": "cardiovascular" + }, + { + "studyId": 71, + "domain": "cardiovascular" + }, + { + "studyId": 15, + "domain": "cardiovascular" + }, + { + "studyId": 78, + "domain": "cardiovascular" + }, + { + "studyId": 50, + "domain": "cardiovascular" + }, + { + "studyId": 92, + "domain": "cardiovascular" + }, + { + "studyId": 22, + "domain": "cardiovascular" + }, + { + "studyId": 43, + "domain": "cardiovascular" + }, + { + "studyId": 64, + "domain": "cardiovascular" + }, + { + "studyId": 106, + "domain": "cardiovascular" + }, + { + "studyId": 72, + "domain": "metabolic" + }, + { + "studyId": 44, + "domain": "metabolic" + }, + { + "studyId": 107, + "domain": "metabolic" + }, + { + "studyId": 51, + "domain": "metabolic" + }, + { + "studyId": 23, + "domain": "metabolic" + }, + { + "studyId": 86, + "domain": "metabolic" + }, + { + "studyId": 30, + "domain": "metabolic" + }, + { + "studyId": 2, + "domain": "metabolic" + }, + { + "studyId": 16, + "domain": "metabolic" + }, + { + "studyId": 58, + "domain": "metabolic" + }, + { + "studyId": 79, + "domain": "metabolic" + }, + { + "studyId": 100, + "domain": "metabolic" + }, + { + "studyId": 18, + "domain": "neurological" + }, + { + "studyId": 60, + "domain": "neurological" + }, + { + "studyId": 32, + "domain": "neurological" + }, + { + "studyId": 95, + "domain": "neurological" + }, + { + "studyId": 39, + "domain": "neurological" + }, + { + "studyId": 102, + "domain": "neurological" + }, + { + "studyId": 11, + "domain": "neurological" + }, + { + "studyId": 74, + "domain": "neurological" + }, + { + "studyId": 4, + "domain": "neurological" + }, + { + "studyId": 46, + "domain": "neurological" + }, + { + "studyId": 67, + "domain": "neurological" + }, + { + "studyId": 88, + "domain": "neurological" + }, + { + "studyId": 108, + "domain": "immune" + }, + { + "studyId": 80, + "domain": "immune" + }, + { + "studyId": 24, + "domain": "immune" + }, + { + "studyId": 87, + "domain": "immune" + }, + { + "studyId": 59, + "domain": "immune" + }, + { + "studyId": 3, + "domain": "immune" + }, + { + "studyId": 66, + "domain": "immune" + }, + { + "studyId": 38, + "domain": "immune" + }, + { + "studyId": 10, + "domain": "immune" + }, + { + "studyId": 31, + "domain": "immune" + }, + { + "studyId": 52, + "domain": "immune" + }, + { + "studyId": 94, + "domain": "immune" + }, + { + "studyId": 54, + "domain": "musculoskeletal" + }, + { + "studyId": 26, + "domain": "musculoskeletal" + }, + { + "studyId": 96, + "domain": "musculoskeletal" + }, + { + "studyId": 68, + "domain": "musculoskeletal" + }, + { + "studyId": 12, + "domain": "musculoskeletal" + }, + { + "studyId": 75, + "domain": "musculoskeletal" + }, + { + "studyId": 47, + "domain": "musculoskeletal" + }, + { + "studyId": 110, + "domain": "musculoskeletal" + }, + { + "studyId": 19, + "domain": "musculoskeletal" + }, + { + "studyId": 40, + "domain": "musculoskeletal" + }, + { + "studyId": 82, + "domain": "musculoskeletal" + }, + { + "studyId": 103, + "domain": "musculoskeletal" + }, + { + "studyId": 27, + "domain": "cancer" + }, + { + "studyId": 90, + "domain": "cancer" + }, + { + "studyId": 62, + "domain": "cancer" + }, + { + "studyId": 6, + "domain": "cancer" + }, + { + "studyId": 104, + "domain": "cancer" + }, + { + "studyId": 48, + "domain": "cancer" + }, + { + "studyId": 20, + "domain": "cancer" + }, + { + "studyId": 83, + "domain": "cancer" + }, + { + "studyId": 34, + "domain": "cancer" + }, + { + "studyId": 55, + "domain": "cancer" + }, + { + "studyId": 76, + "domain": "cancer" + } + ], + "counts": { + "cardiovascular": { + "elevated": 8, + "protective": 4 + }, + "metabolic": { + "elevated": 8, + "protective": 4 + }, + "neurological": { + "elevated": 8, + "protective": 4 + }, + "immune": { + "elevated": 8, + "protective": 4 + }, + "musculoskeletal": { + "elevated": 8, + "protective": 4 + }, + "cancer": { + "elevated": 8, + "protective": 3 + } + }, + "prompt": "You are writing a personalized genetic healthspan report. The reader is not a scientist but is curious and health-conscious. Write the way a knowledgeable friend who happens to be a geneticist would explain this: clear, specific, and honest about uncertainty. These are population-level statistics; use \"population studies associate\" / \"carriers show\" throughout, never deterministic claims.\n\n\nDATA FORMAT: Trait | Effect size (\u2191 elevated / \u2193 protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence\n\n## CARDIOVASCULAR\nElevated (8):\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs35 | genotype: AG (risk allele: rs35-A) | p: very strong\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs98 | genotype: AG (risk allele: rs98-A) | p: very strong\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs7 | genotype: AG (risk allele: rs7-A) | p: very strong\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs70 | genotype: AG (risk allele: rs70-A) | p: very strong\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs14 | genotype: AG (risk allele: rs14-A) | p: very strong\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs77 | genotype: AG (risk allele: rs77-A) | p: very strong\nCoronary heart disease | OR 1.60x \u2191 | gene: GENE | snp: rs49 | genotype: AG (risk allele: rs49-A) | p: very strong\nCoronary heart disease | OR 1.30x \u2191 | gene: GENE | snp: rs91 | genotype: AG (risk allele: rs91-A) | p: very strong\nProtective (4):\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs21 | genotype: AG (risk allele: rs21-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs42 | genotype: AG (risk allele: rs42-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs63 | genotype: AG (risk allele: rs63-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs105 | genotype: AG (risk allele: rs105-A) | p: very strong\n\n## METABOLIC & ENDOCRINE\nElevated (8):\nType 2 diabetes | OR 2.00x \u2191 | gene: GENE | snp: rs71 | genotype: AG (risk allele: rs71-A) | p: very strong\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs43 | genotype: AG (risk allele: rs43-A) | p: very strong\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs106 | genotype: AG (risk allele: rs106-A) | p: very strong\nType 2 diabetes | OR 1.70x \u2191 | gene: GENE | snp: rs50 | genotype: AG (risk allele: rs50-A) | p: very strong\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs22 | genotype: AG (risk allele: rs22-A) | p: very strong\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs85 | genotype: AG (risk allele: rs85-A) | p: very strong\nType 2 diabetes | OR 1.40x \u2191 | gene: GENE | snp: rs29 | genotype: AG (risk allele: rs29-A) | p: very strong\nType 2 diabetes | OR 1.30x \u2191 | gene: GENE | snp: rs1 | genotype: AG (risk allele: rs1-A) | p: very strong\nProtective (4):\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs15 | genotype: AG (risk allele: rs15-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs57 | genotype: AG (risk allele: rs57-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs78 | genotype: AG (risk allele: rs78-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs99 | genotype: AG (risk allele: rs99-A) | p: very strong\n\n## NEUROLOGICAL & COGNITIVE\nElevated (8):\nCognitive performance | OR 2.00x \u2191 | gene: GENE | snp: rs17 | genotype: AG (risk allele: rs17-A) | p: very strong\nCognitive performance | OR 1.70x \u2191 | gene: GENE | snp: rs59 | genotype: AG (risk allele: rs59-A) | p: very strong\nCognitive performance | OR 1.60x \u2191 | gene: GENE | snp: rs31 | genotype: AG (risk allele: rs31-A) | p: very strong\nCognitive performance | OR 1.60x \u2191 | gene: GENE | snp: rs94 | genotype: AG (risk allele: rs94-A) | p: very strong\nCognitive performance | OR 1.40x \u2191 | gene: GENE | snp: rs38 | genotype: AG (risk allele: rs38-A) | p: very strong\nCognitive performance | OR 1.40x \u2191 | gene: GENE | snp: rs101 | genotype: AG (risk allele: rs101-A) | p: very strong\nCognitive performance | OR 1.30x \u2191 | gene: GENE | snp: rs10 | genotype: AG (risk allele: rs10-A) | p: very strong\nCognitive performance | OR 1.30x \u2191 | gene: GENE | snp: rs73 | genotype: AG (risk allele: rs73-A) | p: very strong\nProtective (4):\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs3 | genotype: AG (risk allele: rs3-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs45 | genotype: AG (risk allele: rs45-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs66 | genotype: AG (risk allele: rs66-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs87 | genotype: AG (risk allele: rs87-A) | p: very strong\n\n## IMMUNE & INFLAMMATORY\nElevated (8):\nRheumatoid arthritis | OR 2.00x \u2191 | gene: GENE | snp: rs107 | genotype: AG (risk allele: rs107-A) | p: very strong\nRheumatoid arthritis | OR 1.90x \u2191 | gene: GENE | snp: rs79 | genotype: AG (risk allele: rs79-A) | p: very strong\nRheumatoid arthritis | OR 1.70x \u2191 | gene: GENE | snp: rs23 | genotype: AG (risk allele: rs23-A) | p: very strong\nRheumatoid arthritis | OR 1.70x \u2191 | gene: GENE | snp: rs86 | genotype: AG (risk allele: rs86-A) | p: very strong\nRheumatoid arthritis | OR 1.60x \u2191 | gene: GENE | snp: rs58 | genotype: AG (risk allele: rs58-A) | p: very strong\nRheumatoid arthritis | OR 1.40x \u2191 | gene: GENE | snp: rs2 | genotype: AG (risk allele: rs2-A) | p: very strong\nRheumatoid arthritis | OR 1.40x \u2191 | gene: GENE | snp: rs65 | genotype: AG (risk allele: rs65-A) | p: very strong\nRheumatoid arthritis | OR 1.30x \u2191 | gene: GENE | snp: rs37 | genotype: AG (risk allele: rs37-A) | p: very strong\nProtective (4):\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs9 | genotype: AG (risk allele: rs9-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs30 | genotype: AG (risk allele: rs30-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs51 | genotype: AG (risk allele: rs51-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs93 | genotype: AG (risk allele: rs93-A) | p: very strong\n\n## MUSCULOSKELETAL\nElevated (8):\nBone density | OR 2.00x \u2191 | gene: GENE | snp: rs53 | genotype: AG (risk allele: rs53-A) | p: very strong\nBone density | OR 1.90x \u2191 | gene: GENE | snp: rs25 | genotype: AG (risk allele: rs25-A) | p: very strong\nBone density | OR 1.70x \u2191 | gene: GENE | snp: rs95 | genotype: AG (risk allele: rs95-A) | p: very strong\nBone density | OR 1.60x \u2191 | gene: GENE | snp: rs67 | genotype: AG (risk allele: rs67-A) | p: very strong\nBone density | OR 1.40x \u2191 | gene: GENE | snp: rs11 | genotype: AG (risk allele: rs11-A) | p: very strong\nBone density | OR 1.40x \u2191 | gene: GENE | snp: rs74 | genotype: AG (risk allele: rs74-A) | p: very strong\nBone density | OR 1.30x \u2191 | gene: GENE | snp: rs46 | genotype: AG (risk allele: rs46-A) | p: very strong\nBone density | OR 1.30x \u2191 | gene: GENE | snp: rs109 | genotype: AG (risk allele: rs109-A) | p: very strong\nProtective (4):\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs18 | genotype: AG (risk allele: rs18-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs39 | genotype: AG (risk allele: rs39-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs81 | genotype: AG (risk allele: rs81-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs102 | genotype: AG (risk allele: rs102-A) | p: very strong\n\n## CANCER SUSCEPTIBILITY\nElevated (8):\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs26 | genotype: AG (risk allele: rs26-A) | p: very strong\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs89 | genotype: AG (risk allele: rs89-A) | p: very strong\nBreast cancer | OR 1.90x \u2191 | gene: GENE | snp: rs61 | genotype: AG (risk allele: rs61-A) | p: very strong\nBreast cancer | OR 1.70x \u2191 | gene: GENE | snp: rs5 | genotype: AG (risk allele: rs5-A) | p: very strong\nBreast cancer | OR 1.60x \u2191 | gene: GENE | snp: rs103 | genotype: AG (risk allele: rs103-A) | p: very strong\nBreast cancer | OR 1.40x \u2191 | gene: GENE | snp: rs47 | genotype: AG (risk allele: rs47-A) | p: very strong\nBreast cancer | OR 1.30x \u2191 | gene: GENE | snp: rs19 | genotype: AG (risk allele: rs19-A) | p: very strong\nBreast cancer | OR 1.30x \u2191 | gene: GENE | snp: rs82 | genotype: AG (risk allele: rs82-A) | p: very strong\nProtective (3):\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs33 | genotype: AG (risk allele: rs33-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs54 | genotype: AG (risk allele: rs54-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs75 | genotype: AG (risk allele: rs75-A) | p: very strong\n\nNo health history provided. Focus on the strongest and most surprising signals.\n\nStructure the report as follows. Do NOT use the domain names as section headers:\n\n**Your aging profile** (write this first)\n2-3 sentences. What are the 1-2 most important things to understand about this person's genetic aging biology? Be direct and specific. This is the executive summary a non-scientist will actually remember.\n\n**Key findings** (3-4 findings, each as a named header + 2-3 paragraphs)\nChoose the 3-4 most important and interesting genetic themes across ALL domains combined. These should be the signals that matter most for long-term healthspan \u2014 the things a person would actually want to know and think about. Each finding should:\n- Have a short, plain-English header (e.g., \"Metabolic-cardiovascular tension\", \"Cognitive aging and APOE\", \"Immune system tuning\")\n- Open with a one-sentence plain statement of what the finding is\n- Explain the biology in 2 paragraphs: what the gene or pathway does, what the signal pattern suggests, and why it matters for aging\n- Focus on what is most surprising or actionable from a healthspan perspective\n- Skip pseudogenes (LINC, LOC, MIR) entirely\n\n**Other signals worth noting** (1 short paragraph)\nBriefly mention 2-3 additional signals from domains not covered in Key findings. One sentence each. This gives breadth without diluting the main findings.\n\n**What to understand about your aging biology**\n4 genes, each with a 1-sentence hook explaining WHY it matters for how the body ages, not just what trait it is associated with. Write these for someone who will go and search for more.\n\n**Hypotheses about you** (4 hypotheses, each 2-3 sentences)\nBased on the patterns across these healthspan signals, write 4 specific hypotheses about this person's biology or lived experience. Each should be a concrete statement grounded in the findings. Frame each as \"People with this signal pattern tend to...\" or \"This combination of variants is consistent with someone who...\". Be direct and specific. These should feel like insights, not disclaimers. Reference specific genes or findings from this report.\n\nStyle rules:\n- No domain-name headers in the body of the report.\n- The \"Key findings\" headers should describe the biological theme, not the domain (e.g., \"The metabolic-inflammatory axis\" not \"Cardiovascular\").\n- Write for someone who wants to understand their biology, not catalog it.\n- When citing a specific variant, include the rsID where available (e.g., \"rs429358, an APOE variant\"). Where the genotype is informative, note it: \"heterozygous for the risk allele\" vs \"homozygous.\"\n- Population-level language; never \"your genome does X.\"\n- Do not recommend clinical tests, doctors, or lifestyle changes.\n- 800-1000 words total\n\nAfter the report, append exactly this block (required, verbatim format):\n\nCHAT_QUESTIONS:\n- [a specific question about a key finding, gene, or SNP from this report]\n- [a question about how two signals or domains connect]\n- [a question about what a specific genotype or protective signal means]\n- [a question about the biology behind a surprising or cross-domain finding]\n- [a question about a gene worth researching further]\n\nQuestions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them." + }, + { + "kind": "healthspan", + "withHistory": true, + "selected": [ + { + "studyId": 36, + "domain": "cardiovascular" + }, + { + "studyId": 99, + "domain": "cardiovascular" + }, + { + "studyId": 8, + "domain": "cardiovascular" + }, + { + "studyId": 71, + "domain": "cardiovascular" + }, + { + "studyId": 15, + "domain": "cardiovascular" + }, + { + "studyId": 78, + "domain": "cardiovascular" + }, + { + "studyId": 50, + "domain": "cardiovascular" + }, + { + "studyId": 92, + "domain": "cardiovascular" + }, + { + "studyId": 22, + "domain": "cardiovascular" + }, + { + "studyId": 43, + "domain": "cardiovascular" + }, + { + "studyId": 64, + "domain": "cardiovascular" + }, + { + "studyId": 106, + "domain": "cardiovascular" + }, + { + "studyId": 72, + "domain": "metabolic" + }, + { + "studyId": 44, + "domain": "metabolic" + }, + { + "studyId": 107, + "domain": "metabolic" + }, + { + "studyId": 51, + "domain": "metabolic" + }, + { + "studyId": 23, + "domain": "metabolic" + }, + { + "studyId": 86, + "domain": "metabolic" + }, + { + "studyId": 30, + "domain": "metabolic" + }, + { + "studyId": 2, + "domain": "metabolic" + }, + { + "studyId": 16, + "domain": "metabolic" + }, + { + "studyId": 58, + "domain": "metabolic" + }, + { + "studyId": 79, + "domain": "metabolic" + }, + { + "studyId": 100, + "domain": "metabolic" + }, + { + "studyId": 18, + "domain": "neurological" + }, + { + "studyId": 60, + "domain": "neurological" + }, + { + "studyId": 32, + "domain": "neurological" + }, + { + "studyId": 95, + "domain": "neurological" + }, + { + "studyId": 39, + "domain": "neurological" + }, + { + "studyId": 102, + "domain": "neurological" + }, + { + "studyId": 11, + "domain": "neurological" + }, + { + "studyId": 74, + "domain": "neurological" + }, + { + "studyId": 4, + "domain": "neurological" + }, + { + "studyId": 46, + "domain": "neurological" + }, + { + "studyId": 67, + "domain": "neurological" + }, + { + "studyId": 88, + "domain": "neurological" + }, + { + "studyId": 108, + "domain": "immune" + }, + { + "studyId": 80, + "domain": "immune" + }, + { + "studyId": 24, + "domain": "immune" + }, + { + "studyId": 87, + "domain": "immune" + }, + { + "studyId": 59, + "domain": "immune" + }, + { + "studyId": 3, + "domain": "immune" + }, + { + "studyId": 66, + "domain": "immune" + }, + { + "studyId": 38, + "domain": "immune" + }, + { + "studyId": 10, + "domain": "immune" + }, + { + "studyId": 31, + "domain": "immune" + }, + { + "studyId": 52, + "domain": "immune" + }, + { + "studyId": 94, + "domain": "immune" + }, + { + "studyId": 54, + "domain": "musculoskeletal" + }, + { + "studyId": 26, + "domain": "musculoskeletal" + }, + { + "studyId": 96, + "domain": "musculoskeletal" + }, + { + "studyId": 68, + "domain": "musculoskeletal" + }, + { + "studyId": 12, + "domain": "musculoskeletal" + }, + { + "studyId": 75, + "domain": "musculoskeletal" + }, + { + "studyId": 47, + "domain": "musculoskeletal" + }, + { + "studyId": 110, + "domain": "musculoskeletal" + }, + { + "studyId": 19, + "domain": "musculoskeletal" + }, + { + "studyId": 40, + "domain": "musculoskeletal" + }, + { + "studyId": 82, + "domain": "musculoskeletal" + }, + { + "studyId": 103, + "domain": "musculoskeletal" + }, + { + "studyId": 27, + "domain": "cancer" + }, + { + "studyId": 90, + "domain": "cancer" + }, + { + "studyId": 62, + "domain": "cancer" + }, + { + "studyId": 6, + "domain": "cancer" + }, + { + "studyId": 104, + "domain": "cancer" + }, + { + "studyId": 48, + "domain": "cancer" + }, + { + "studyId": 20, + "domain": "cancer" + }, + { + "studyId": 83, + "domain": "cancer" + }, + { + "studyId": 34, + "domain": "cancer" + }, + { + "studyId": 55, + "domain": "cancer" + }, + { + "studyId": 76, + "domain": "cancer" + } + ], + "counts": { + "cardiovascular": { + "elevated": 8, + "protective": 4 + }, + "metabolic": { + "elevated": 8, + "protective": 4 + }, + "neurological": { + "elevated": 8, + "protective": 4 + }, + "immune": { + "elevated": 8, + "protective": 4 + }, + "musculoskeletal": { + "elevated": 8, + "protective": 4 + }, + "cancer": { + "elevated": 8, + "protective": 3 + } + }, + "prompt": "You are writing a personalized genetic healthspan report. The reader is not a scientist but is curious and health-conscious. Write the way a knowledgeable friend who happens to be a geneticist would explain this: clear, specific, and honest about uncertainty. These are population-level statistics; use \"population studies associate\" / \"carriers show\" throughout, never deterministic claims.\n\n\nEthnicities: Example ancestry\nCountries of ancestral origin: Example country\nGender assigned at birth: female\nAge: 42\nSmoking history: Never smoked\nAlcohol use: Rare\nCurrent medications/supplements: example\nDietary preferences: Regular diet (no restrictions)\nPersonal medical history: coronary heart disease\nFamily medical history: type 2 diabetes\n\nHEALTH HISTORY:\n- Personal: coronary heart disease\n- Family: type 2 diabetes\n\nDATA FORMAT: Trait | Effect size (\u2191 elevated / \u2193 protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence\n\n## CARDIOVASCULAR\nElevated (8):\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs35 | genotype: AG (risk allele: rs35-A) | p: very strong\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs98 | genotype: AG (risk allele: rs98-A) | p: very strong\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs7 | genotype: AG (risk allele: rs7-A) | p: very strong\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs70 | genotype: AG (risk allele: rs70-A) | p: very strong\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs14 | genotype: AG (risk allele: rs14-A) | p: very strong\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs77 | genotype: AG (risk allele: rs77-A) | p: very strong\nCoronary heart disease | OR 1.60x \u2191 | gene: GENE | snp: rs49 | genotype: AG (risk allele: rs49-A) | p: very strong\nCoronary heart disease | OR 1.30x \u2191 | gene: GENE | snp: rs91 | genotype: AG (risk allele: rs91-A) | p: very strong\nProtective (4):\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs21 | genotype: AG (risk allele: rs21-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs42 | genotype: AG (risk allele: rs42-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs63 | genotype: AG (risk allele: rs63-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs105 | genotype: AG (risk allele: rs105-A) | p: very strong\n\n## METABOLIC & ENDOCRINE\nElevated (8):\nType 2 diabetes | OR 2.00x \u2191 | gene: GENE | snp: rs71 | genotype: AG (risk allele: rs71-A) | p: very strong\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs43 | genotype: AG (risk allele: rs43-A) | p: very strong\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs106 | genotype: AG (risk allele: rs106-A) | p: very strong\nType 2 diabetes | OR 1.70x \u2191 | gene: GENE | snp: rs50 | genotype: AG (risk allele: rs50-A) | p: very strong\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs22 | genotype: AG (risk allele: rs22-A) | p: very strong\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs85 | genotype: AG (risk allele: rs85-A) | p: very strong\nType 2 diabetes | OR 1.40x \u2191 | gene: GENE | snp: rs29 | genotype: AG (risk allele: rs29-A) | p: very strong\nType 2 diabetes | OR 1.30x \u2191 | gene: GENE | snp: rs1 | genotype: AG (risk allele: rs1-A) | p: very strong\nProtective (4):\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs15 | genotype: AG (risk allele: rs15-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs57 | genotype: AG (risk allele: rs57-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs78 | genotype: AG (risk allele: rs78-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs99 | genotype: AG (risk allele: rs99-A) | p: very strong\n\n## NEUROLOGICAL & COGNITIVE\nElevated (8):\nCognitive performance | OR 2.00x \u2191 | gene: GENE | snp: rs17 | genotype: AG (risk allele: rs17-A) | p: very strong\nCognitive performance | OR 1.70x \u2191 | gene: GENE | snp: rs59 | genotype: AG (risk allele: rs59-A) | p: very strong\nCognitive performance | OR 1.60x \u2191 | gene: GENE | snp: rs31 | genotype: AG (risk allele: rs31-A) | p: very strong\nCognitive performance | OR 1.60x \u2191 | gene: GENE | snp: rs94 | genotype: AG (risk allele: rs94-A) | p: very strong\nCognitive performance | OR 1.40x \u2191 | gene: GENE | snp: rs38 | genotype: AG (risk allele: rs38-A) | p: very strong\nCognitive performance | OR 1.40x \u2191 | gene: GENE | snp: rs101 | genotype: AG (risk allele: rs101-A) | p: very strong\nCognitive performance | OR 1.30x \u2191 | gene: GENE | snp: rs10 | genotype: AG (risk allele: rs10-A) | p: very strong\nCognitive performance | OR 1.30x \u2191 | gene: GENE | snp: rs73 | genotype: AG (risk allele: rs73-A) | p: very strong\nProtective (4):\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs3 | genotype: AG (risk allele: rs3-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs45 | genotype: AG (risk allele: rs45-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs66 | genotype: AG (risk allele: rs66-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs87 | genotype: AG (risk allele: rs87-A) | p: very strong\n\n## IMMUNE & INFLAMMATORY\nElevated (8):\nRheumatoid arthritis | OR 2.00x \u2191 | gene: GENE | snp: rs107 | genotype: AG (risk allele: rs107-A) | p: very strong\nRheumatoid arthritis | OR 1.90x \u2191 | gene: GENE | snp: rs79 | genotype: AG (risk allele: rs79-A) | p: very strong\nRheumatoid arthritis | OR 1.70x \u2191 | gene: GENE | snp: rs23 | genotype: AG (risk allele: rs23-A) | p: very strong\nRheumatoid arthritis | OR 1.70x \u2191 | gene: GENE | snp: rs86 | genotype: AG (risk allele: rs86-A) | p: very strong\nRheumatoid arthritis | OR 1.60x \u2191 | gene: GENE | snp: rs58 | genotype: AG (risk allele: rs58-A) | p: very strong\nRheumatoid arthritis | OR 1.40x \u2191 | gene: GENE | snp: rs2 | genotype: AG (risk allele: rs2-A) | p: very strong\nRheumatoid arthritis | OR 1.40x \u2191 | gene: GENE | snp: rs65 | genotype: AG (risk allele: rs65-A) | p: very strong\nRheumatoid arthritis | OR 1.30x \u2191 | gene: GENE | snp: rs37 | genotype: AG (risk allele: rs37-A) | p: very strong\nProtective (4):\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs9 | genotype: AG (risk allele: rs9-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs30 | genotype: AG (risk allele: rs30-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs51 | genotype: AG (risk allele: rs51-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs93 | genotype: AG (risk allele: rs93-A) | p: very strong\n\n## MUSCULOSKELETAL\nElevated (8):\nBone density | OR 2.00x \u2191 | gene: GENE | snp: rs53 | genotype: AG (risk allele: rs53-A) | p: very strong\nBone density | OR 1.90x \u2191 | gene: GENE | snp: rs25 | genotype: AG (risk allele: rs25-A) | p: very strong\nBone density | OR 1.70x \u2191 | gene: GENE | snp: rs95 | genotype: AG (risk allele: rs95-A) | p: very strong\nBone density | OR 1.60x \u2191 | gene: GENE | snp: rs67 | genotype: AG (risk allele: rs67-A) | p: very strong\nBone density | OR 1.40x \u2191 | gene: GENE | snp: rs11 | genotype: AG (risk allele: rs11-A) | p: very strong\nBone density | OR 1.40x \u2191 | gene: GENE | snp: rs74 | genotype: AG (risk allele: rs74-A) | p: very strong\nBone density | OR 1.30x \u2191 | gene: GENE | snp: rs46 | genotype: AG (risk allele: rs46-A) | p: very strong\nBone density | OR 1.30x \u2191 | gene: GENE | snp: rs109 | genotype: AG (risk allele: rs109-A) | p: very strong\nProtective (4):\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs18 | genotype: AG (risk allele: rs18-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs39 | genotype: AG (risk allele: rs39-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs81 | genotype: AG (risk allele: rs81-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs102 | genotype: AG (risk allele: rs102-A) | p: very strong\n\n## CANCER SUSCEPTIBILITY\nElevated (8):\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs26 | genotype: AG (risk allele: rs26-A) | p: very strong\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs89 | genotype: AG (risk allele: rs89-A) | p: very strong\nBreast cancer | OR 1.90x \u2191 | gene: GENE | snp: rs61 | genotype: AG (risk allele: rs61-A) | p: very strong\nBreast cancer | OR 1.70x \u2191 | gene: GENE | snp: rs5 | genotype: AG (risk allele: rs5-A) | p: very strong\nBreast cancer | OR 1.60x \u2191 | gene: GENE | snp: rs103 | genotype: AG (risk allele: rs103-A) | p: very strong\nBreast cancer | OR 1.40x \u2191 | gene: GENE | snp: rs47 | genotype: AG (risk allele: rs47-A) | p: very strong\nBreast cancer | OR 1.30x \u2191 | gene: GENE | snp: rs19 | genotype: AG (risk allele: rs19-A) | p: very strong\nBreast cancer | OR 1.30x \u2191 | gene: GENE | snp: rs82 | genotype: AG (risk allele: rs82-A) | p: very strong\nProtective (3):\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs33 | genotype: AG (risk allele: rs33-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs54 | genotype: AG (risk allele: rs54-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs75 | genotype: AG (risk allele: rs75-A) | p: very strong\n\nUse the health history to anchor the report: note where genetic signals reinforce known conditions, where they diverge, and which findings the user is unlikely to have encountered from their symptoms alone.\n\nStructure the report as follows. Do NOT use the domain names as section headers:\n\n**Your aging profile** (write this first)\n2-3 sentences. What are the 1-2 most important things to understand about this person's genetic aging biology? Be direct and specific. This is the executive summary a non-scientist will actually remember.\n\n**Key findings** (3-4 findings, each as a named header + 2-3 paragraphs)\nChoose the 3-4 most important and interesting genetic themes across ALL domains combined. These should be the signals that matter most for long-term healthspan \u2014 the things a person would actually want to know and think about. Each finding should:\n- Have a short, plain-English header (e.g., \"Metabolic-cardiovascular tension\", \"Cognitive aging and APOE\", \"Immune system tuning\")\n- Open with a one-sentence plain statement of what the finding is\n- Explain the biology in 2 paragraphs: what the gene or pathway does, what the signal pattern suggests, and why it matters for aging\n- Connect explicitly to the user's health history when relevant\n- Skip pseudogenes (LINC, LOC, MIR) entirely\n\n**Other signals worth noting** (1 short paragraph)\nBriefly mention 2-3 additional signals from domains not covered in Key findings. One sentence each. This gives breadth without diluting the main findings.\n\n**What to understand about your aging biology**\n4 genes, each with a 1-sentence hook explaining WHY it matters for how the body ages, not just what trait it is associated with. Write these for someone who will go and search for more.\n\n**Hypotheses about you** (4 hypotheses, each 2-3 sentences)\nBased on the patterns across these healthspan signals, write 4 specific hypotheses about this person's biology or lived experience. Each should be a concrete statement grounded in the findings. Frame each as \"People with this signal pattern tend to...\" or \"This combination of variants is consistent with someone who...\". Be direct and specific. These should feel like insights, not disclaimers. Reference specific genes or findings from this report.\n\nStyle rules:\n- No domain-name headers in the body of the report.\n- The \"Key findings\" headers should describe the biological theme, not the domain (e.g., \"The metabolic-inflammatory axis\" not \"Cardiovascular\").\n- Write for someone who wants to understand their biology, not catalog it.\n- When citing a specific variant, include the rsID where available (e.g., \"rs429358, an APOE variant\"). Where the genotype is informative, note it: \"heterozygous for the risk allele\" vs \"homozygous.\"\n- Population-level language; never \"your genome does X.\"\n- Do not recommend clinical tests, doctors, or lifestyle changes.\n- 800-1000 words total\n\nAfter the report, append exactly this block (required, verbatim format):\n\nCHAT_QUESTIONS:\n- [a specific question about a key finding, gene, or SNP from this report]\n- [a question about how two signals or domains connect]\n- [a question about what a specific genotype or protective signal means]\n- [a question about the biology behind a surprising or cross-domain finding]\n- [a question about a gene worth researching further]\n\nQuestions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them." + }, + { + "kind": "toptraits", + "withHistory": false, + "selected": [ + { + "studyId": 18 + }, + { + "studyId": 27 + }, + { + "studyId": 36 + }, + { + "studyId": 54 + }, + { + "studyId": 63 + }, + { + "studyId": 72 + }, + { + "studyId": 90 + }, + { + "studyId": 99 + }, + { + "studyId": 108 + }, + { + "studyId": 8 + }, + { + "studyId": 26 + }, + { + "studyId": 35 + }, + { + "studyId": 44 + }, + { + "studyId": 62 + }, + { + "studyId": 71 + }, + { + "studyId": 80 + }, + { + "studyId": 98 + }, + { + "studyId": 107 + }, + { + "studyId": 6 + }, + { + "studyId": 15 + }, + { + "studyId": 24 + }, + { + "studyId": 42 + }, + { + "studyId": 51 + }, + { + "studyId": 60 + }, + { + "studyId": 78 + }, + { + "studyId": 1 + }, + { + "studyId": 5 + }, + { + "studyId": 9 + }, + { + "studyId": 13 + }, + { + "studyId": 17 + }, + { + "studyId": 21 + }, + { + "studyId": 25 + }, + { + "studyId": 29 + }, + { + "studyId": 33 + }, + { + "studyId": 37 + }, + { + "studyId": 41 + }, + { + "studyId": 45 + }, + { + "studyId": 49 + }, + { + "studyId": 53 + }, + { + "studyId": 57 + }, + { + "studyId": 61 + }, + { + "studyId": 65 + }, + { + "studyId": 69 + }, + { + "studyId": 73 + }, + { + "studyId": 77 + }, + { + "studyId": 81 + }, + { + "studyId": 85 + }, + { + "studyId": 89 + }, + { + "studyId": 93 + }, + { + "studyId": 97 + }, + { + "studyId": 87 + }, + { + "studyId": 96 + }, + { + "studyId": 14 + }, + { + "studyId": 23 + }, + { + "studyId": 32 + }, + { + "studyId": 50 + }, + { + "studyId": 59 + }, + { + "studyId": 68 + }, + { + "studyId": 86 + }, + { + "studyId": 95 + }, + { + "studyId": 104 + }, + { + "studyId": 3 + }, + { + "studyId": 12 + }, + { + "studyId": 30 + }, + { + "studyId": 39 + }, + { + "studyId": 48 + }, + { + "studyId": 66 + }, + { + "studyId": 75 + }, + { + "studyId": 84 + }, + { + "studyId": 102 + }, + { + "studyId": 2 + }, + { + "studyId": 11 + }, + { + "studyId": 20 + }, + { + "studyId": 38 + }, + { + "studyId": 47 + }, + { + "studyId": 56 + }, + { + "studyId": 74 + }, + { + "studyId": 83 + }, + { + "studyId": 92 + }, + { + "studyId": 110 + }, + { + "studyId": 4 + }, + { + "studyId": 7 + }, + { + "studyId": 10 + }, + { + "studyId": 16 + }, + { + "studyId": 19 + }, + { + "studyId": 22 + }, + { + "studyId": 28 + }, + { + "studyId": 31 + }, + { + "studyId": 34 + }, + { + "studyId": 40 + }, + { + "studyId": 43 + }, + { + "studyId": 46 + }, + { + "studyId": 52 + }, + { + "studyId": 55 + }, + { + "studyId": 58 + }, + { + "studyId": 64 + }, + { + "studyId": 67 + }, + { + "studyId": 70 + }, + { + "studyId": 76 + }, + { + "studyId": 79 + } + ], + "counts": {}, + "prompt": "You are writing a personalized genetics report. These are the 50 strongest genetic signals by effect size across all results.\n\n\nDATA FORMAT: Trait | Effect size (\u2191 elevated / \u2193 protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence\n\nELEVATED SIGNALS (71):\nCognitive performance | OR 2.00x \u2191 | gene: GENE | snp: rs17 | genotype: AG (risk allele: rs17-A) | p: very strong\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs26 | genotype: AG (risk allele: rs26-A) | p: very strong\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs35 | genotype: AG (risk allele: rs35-A) | p: very strong\nBone density | OR 2.00x \u2191 | gene: GENE | snp: rs53 | genotype: AG (risk allele: rs53-A) | p: very strong\nHeight | OR 2.00x \u2191 | gene: GENE | snp: rs62 | genotype: AG (risk allele: rs62-A) | p: very strong\nType 2 diabetes | OR 2.00x \u2191 | gene: GENE | snp: rs71 | genotype: AG (risk allele: rs71-A) | p: very strong\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs89 | genotype: AG (risk allele: rs89-A) | p: very strong\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs98 | genotype: AG (risk allele: rs98-A) | p: very strong\nRheumatoid arthritis | OR 2.00x \u2191 | gene: GENE | snp: rs107 | genotype: AG (risk allele: rs107-A) | p: very strong\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs7 | genotype: AG (risk allele: rs7-A) | p: very strong\nBone density | OR 1.90x \u2191 | gene: GENE | snp: rs25 | genotype: AG (risk allele: rs25-A) | p: very strong\nHeight | OR 1.90x \u2191 | gene: GENE | snp: rs34 | genotype: AG (risk allele: rs34-A) | p: very strong\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs43 | genotype: AG (risk allele: rs43-A) | p: very strong\nBreast cancer | OR 1.90x \u2191 | gene: GENE | snp: rs61 | genotype: AG (risk allele: rs61-A) | p: very strong\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs70 | genotype: AG (risk allele: rs70-A) | p: very strong\nRheumatoid arthritis | OR 1.90x \u2191 | gene: GENE | snp: rs79 | genotype: AG (risk allele: rs79-A) | p: very strong\nHeight | OR 1.90x \u2191 | gene: GENE | snp: rs97 | genotype: AG (risk allele: rs97-A) | p: very strong\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs106 | genotype: AG (risk allele: rs106-A) | p: very strong\nBreast cancer | OR 1.70x \u2191 | gene: GENE | snp: rs5 | genotype: AG (risk allele: rs5-A) | p: very strong\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs14 | genotype: AG (risk allele: rs14-A) | p: very strong\nRheumatoid arthritis | OR 1.70x \u2191 | gene: GENE | snp: rs23 | genotype: AG (risk allele: rs23-A) | p: very strong\nHeight | OR 1.70x \u2191 | gene: GENE | snp: rs41 | genotype: AG (risk allele: rs41-A) | p: very strong\nType 2 diabetes | OR 1.70x \u2191 | gene: GENE | snp: rs50 | genotype: AG (risk allele: rs50-A) | p: very strong\nCognitive performance | OR 1.70x \u2191 | gene: GENE | snp: rs59 | genotype: AG (risk allele: rs59-A) | p: very strong\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs77 | genotype: AG (risk allele: rs77-A) | p: very strong\nBone density | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs4 | genotype: AG (risk allele: rs4-A) | p: very strong\nType 2 diabetes | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs8 | genotype: AG (risk allele: rs8-A) | p: very strong\nRheumatoid arthritis | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs16 | genotype: AG (risk allele: rs16-A) | p: very strong\nHeight | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs20 | genotype: AG (risk allele: rs20-A) | p: very strong\nCoronary heart disease | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs28 | genotype: AG (risk allele: rs28-A) | p: very strong\nBone density | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs32 | genotype: AG (risk allele: rs32-A) | p: very strong\nBreast cancer | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs40 | genotype: AG (risk allele: rs40-A) | p: very strong\nRheumatoid arthritis | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs44 | genotype: AG (risk allele: rs44-A) | p: very strong\nCognitive performance | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs52 | genotype: AG (risk allele: rs52-A) | p: very strong\nCoronary heart disease | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs56 | genotype: AG (risk allele: rs56-A) | p: very strong\nType 2 diabetes | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs64 | genotype: AG (risk allele: rs64-A) | p: very strong\nBreast cancer | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs68 | genotype: AG (risk allele: rs68-A) | p: very strong\nHeight | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs76 | genotype: AG (risk allele: rs76-A) | p: very strong\nCognitive performance | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs80 | genotype: AG (risk allele: rs80-A) | p: very strong\nBone density | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs88 | genotype: AG (risk allele: rs88-A) | p: very strong\nType 2 diabetes | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs92 | genotype: AG (risk allele: rs92-A) | p: very strong\nRheumatoid arthritis | OR 1.70x \u2191 | gene: GENE | snp: rs86 | genotype: AG (risk allele: rs86-A) | p: very strong\nBone density | OR 1.70x \u2191 | gene: GENE | snp: rs95 | genotype: AG (risk allele: rs95-A) | p: very strong\nHeight | OR 1.60x \u2191 | gene: GENE | snp: rs13 | genotype: AG (risk allele: rs13-A) | p: very strong\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs22 | genotype: AG (risk allele: rs22-A) | p: very strong\nCognitive performance | OR 1.60x \u2191 | gene: GENE | snp: rs31 | genotype: AG (risk allele: rs31-A) | p: very strong\nCoronary heart disease | OR 1.60x \u2191 | gene: GENE | snp: rs49 | genotype: AG (risk allele: rs49-A) | p: very strong\nRheumatoid arthritis | OR 1.60x \u2191 | gene: GENE | snp: rs58 | genotype: AG (risk allele: rs58-A) | p: very strong\nBone density | OR 1.60x \u2191 | gene: GENE | snp: rs67 | genotype: AG (risk allele: rs67-A) | p: very strong\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs85 | genotype: AG (risk allele: rs85-A) | p: very strong\nCognitive performance | OR 1.60x \u2191 | gene: GENE | snp: rs94 | genotype: AG (risk allele: rs94-A) | p: very strong\nBreast cancer | OR 1.60x \u2191 | gene: GENE | snp: rs103 | genotype: AG (risk allele: rs103-A) | p: very strong\nRheumatoid arthritis | OR 1.40x \u2191 | gene: GENE | snp: rs2 | genotype: AG (risk allele: rs2-A) | p: very strong\nBone density | OR 1.40x \u2191 | gene: GENE | snp: rs11 | genotype: AG (risk allele: rs11-A) | p: very strong\nType 2 diabetes | OR 1.40x \u2191 | gene: GENE | snp: rs29 | genotype: AG (risk allele: rs29-A) | p: very strong\nCognitive performance | OR 1.40x \u2191 | gene: GENE | snp: rs38 | genotype: AG (risk allele: rs38-A) | p: very strong\nBreast cancer | OR 1.40x \u2191 | gene: GENE | snp: rs47 | genotype: AG (risk allele: rs47-A) | p: very strong\nRheumatoid arthritis | OR 1.40x \u2191 | gene: GENE | snp: rs65 | genotype: AG (risk allele: rs65-A) | p: very strong\nBone density | OR 1.40x \u2191 | gene: GENE | snp: rs74 | genotype: AG (risk allele: rs74-A) | p: very strong\nHeight | OR 1.40x \u2191 | gene: GENE | snp: rs83 | genotype: AG (risk allele: rs83-A) | p: very strong\nCognitive performance | OR 1.40x \u2191 | gene: GENE | snp: rs101 | genotype: AG (risk allele: rs101-A) | p: very strong\nType 2 diabetes | OR 1.30x \u2191 | gene: GENE | snp: rs1 | genotype: AG (risk allele: rs1-A) | p: very strong\nCognitive performance | OR 1.30x \u2191 | gene: GENE | snp: rs10 | genotype: AG (risk allele: rs10-A) | p: very strong\nBreast cancer | OR 1.30x \u2191 | gene: GENE | snp: rs19 | genotype: AG (risk allele: rs19-A) | p: very strong\nRheumatoid arthritis | OR 1.30x \u2191 | gene: GENE | snp: rs37 | genotype: AG (risk allele: rs37-A) | p: very strong\nBone density | OR 1.30x \u2191 | gene: GENE | snp: rs46 | genotype: AG (risk allele: rs46-A) | p: very strong\nHeight | OR 1.30x \u2191 | gene: GENE | snp: rs55 | genotype: AG (risk allele: rs55-A) | p: very strong\nCognitive performance | OR 1.30x \u2191 | gene: GENE | snp: rs73 | genotype: AG (risk allele: rs73-A) | p: very strong\nBreast cancer | OR 1.30x \u2191 | gene: GENE | snp: rs82 | genotype: AG (risk allele: rs82-A) | p: very strong\nCoronary heart disease | OR 1.30x \u2191 | gene: GENE | snp: rs91 | genotype: AG (risk allele: rs91-A) | p: very strong\nBone density | OR 1.30x \u2191 | gene: GENE | snp: rs109 | genotype: AG (risk allele: rs109-A) | p: very strong\n\nPROTECTIVE SIGNALS (29):\nCoronary heart disease | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs0 | genotype: AG (risk allele: rs0-A) | p: very strong\nBreast cancer | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs12 | genotype: AG (risk allele: rs12-A) | p: very strong\nCognitive performance | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs24 | genotype: AG (risk allele: rs24-A) | p: very strong\nType 2 diabetes | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs36 | genotype: AG (risk allele: rs36-A) | p: very strong\nHeight | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs48 | genotype: AG (risk allele: rs48-A) | p: very strong\nBone density | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs60 | genotype: AG (risk allele: rs60-A) | p: very strong\nRheumatoid arthritis | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs72 | genotype: AG (risk allele: rs72-A) | p: very strong\nCoronary heart disease | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs84 | genotype: AG (risk allele: rs84-A) | p: very strong\nBreast cancer | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs96 | genotype: AG (risk allele: rs96-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs3 | genotype: AG (risk allele: rs3-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs6 | genotype: AG (risk allele: rs6-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs9 | genotype: AG (risk allele: rs9-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs15 | genotype: AG (risk allele: rs15-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs18 | genotype: AG (risk allele: rs18-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs21 | genotype: AG (risk allele: rs21-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs27 | genotype: AG (risk allele: rs27-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs30 | genotype: AG (risk allele: rs30-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs33 | genotype: AG (risk allele: rs33-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs39 | genotype: AG (risk allele: rs39-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs42 | genotype: AG (risk allele: rs42-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs45 | genotype: AG (risk allele: rs45-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs51 | genotype: AG (risk allele: rs51-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs54 | genotype: AG (risk allele: rs54-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs57 | genotype: AG (risk allele: rs57-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs63 | genotype: AG (risk allele: rs63-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs66 | genotype: AG (risk allele: rs66-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs69 | genotype: AG (risk allele: rs69-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs75 | genotype: AG (risk allele: rs75-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs78 | genotype: AG (risk allele: rs78-A) | p: very strong\n\nYour job is to build a hypothesis about this person's biological character from their strongest signals. Not a gene-by-gene tour; a portrait. What kind of metabolism, immune system, and brain does population-level data suggest this profile is associated with? What is the most interesting or unexpected thing about this combination of signals?\n\nStructure:\n**Biological portrait** (3-4 sentences)\nOpen with a direct hypothesis: what does this combination of strong signals most plausibly suggest about how this person's body works? Be specific and opinionated, and frame it as a hypothesis drawn from population statistics, not a fact. Mention the 1-2 most important signals by name.\n\n**Key themes** (3-4 themes, each as a short header + 2 paragraphs)\nChoose the 3-4 most important biological stories in these results. Each theme should:\n- Start with a one-sentence hypothesis about what the signals in this theme collectively suggest about this person's biology\n- Second paragraph: what do the specific genes/SNPs do, and why do they cluster; what does this combination mean together\n- Include specific rsIDs and genotypes where informative\n- Mention both elevated and protective signals within the theme where they interact\n- Skip pseudogenes (LINC, LOC, MIR)\n\n**What stands out** (1 paragraph)\nThe most surprising, counterintuitive, or medically interesting finding in these results: something the person is unlikely to have noticed on their own. Explain why it matters.\n\n**Hypotheses about you** (4 hypotheses, each 2-3 sentences)\nBased on the patterns in these signals, write 4 specific, testable hypotheses about this person's biology or lived experience. Each should be a concrete statement about something that may be true about them \u2014 how they feel, how their body tends to work, what they may notice about themselves \u2014 grounded in the strongest signals. Frame each as \"People with this signal pattern tend to...\" or \"This combination of variants is consistent with someone who...\". Be direct and specific. These should feel like insights, not disclaimers.\n\nStyle rules:\n- Write for someone who wants to understand their own biology, not a textbook\n- Population-level language throughout: \"population studies associate\", \"carriers tend to show\", never \"your genome does X\"\n- Be specific: name the genes, cite rsIDs, note genotypes where the user's specific variant is informative\n- Do not recommend clinical tests, doctors, or lifestyle changes\n- 700-900 words total\n\nAfter the report, append exactly this block (required, verbatim format):\n\nCHAT_QUESTIONS:\n- [a question about the most prominent gene or pathway from this report]\n- [a question about how two of the top signals relate to each other]\n- [a question about one of the protective signals or a surprising finding]\n- [a question about what a specific genotype means for one of the key themes]\n\nQuestions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them." + }, + { + "kind": "toptraits", + "withHistory": true, + "selected": [ + { + "studyId": 18 + }, + { + "studyId": 27 + }, + { + "studyId": 36 + }, + { + "studyId": 54 + }, + { + "studyId": 63 + }, + { + "studyId": 72 + }, + { + "studyId": 90 + }, + { + "studyId": 99 + }, + { + "studyId": 108 + }, + { + "studyId": 8 + }, + { + "studyId": 26 + }, + { + "studyId": 35 + }, + { + "studyId": 44 + }, + { + "studyId": 62 + }, + { + "studyId": 71 + }, + { + "studyId": 80 + }, + { + "studyId": 98 + }, + { + "studyId": 107 + }, + { + "studyId": 6 + }, + { + "studyId": 15 + }, + { + "studyId": 24 + }, + { + "studyId": 42 + }, + { + "studyId": 51 + }, + { + "studyId": 60 + }, + { + "studyId": 78 + }, + { + "studyId": 1 + }, + { + "studyId": 5 + }, + { + "studyId": 9 + }, + { + "studyId": 13 + }, + { + "studyId": 17 + }, + { + "studyId": 21 + }, + { + "studyId": 25 + }, + { + "studyId": 29 + }, + { + "studyId": 33 + }, + { + "studyId": 37 + }, + { + "studyId": 41 + }, + { + "studyId": 45 + }, + { + "studyId": 49 + }, + { + "studyId": 53 + }, + { + "studyId": 57 + }, + { + "studyId": 61 + }, + { + "studyId": 65 + }, + { + "studyId": 69 + }, + { + "studyId": 73 + }, + { + "studyId": 77 + }, + { + "studyId": 81 + }, + { + "studyId": 85 + }, + { + "studyId": 89 + }, + { + "studyId": 93 + }, + { + "studyId": 97 + }, + { + "studyId": 87 + }, + { + "studyId": 96 + }, + { + "studyId": 14 + }, + { + "studyId": 23 + }, + { + "studyId": 32 + }, + { + "studyId": 50 + }, + { + "studyId": 59 + }, + { + "studyId": 68 + }, + { + "studyId": 86 + }, + { + "studyId": 95 + }, + { + "studyId": 104 + }, + { + "studyId": 3 + }, + { + "studyId": 12 + }, + { + "studyId": 30 + }, + { + "studyId": 39 + }, + { + "studyId": 48 + }, + { + "studyId": 66 + }, + { + "studyId": 75 + }, + { + "studyId": 84 + }, + { + "studyId": 102 + }, + { + "studyId": 2 + }, + { + "studyId": 11 + }, + { + "studyId": 20 + }, + { + "studyId": 38 + }, + { + "studyId": 47 + }, + { + "studyId": 56 + }, + { + "studyId": 74 + }, + { + "studyId": 83 + }, + { + "studyId": 92 + }, + { + "studyId": 110 + }, + { + "studyId": 4 + }, + { + "studyId": 7 + }, + { + "studyId": 10 + }, + { + "studyId": 16 + }, + { + "studyId": 19 + }, + { + "studyId": 22 + }, + { + "studyId": 28 + }, + { + "studyId": 31 + }, + { + "studyId": 34 + }, + { + "studyId": 40 + }, + { + "studyId": 43 + }, + { + "studyId": 46 + }, + { + "studyId": 52 + }, + { + "studyId": 55 + }, + { + "studyId": 58 + }, + { + "studyId": 64 + }, + { + "studyId": 67 + }, + { + "studyId": 70 + }, + { + "studyId": 76 + }, + { + "studyId": 79 + } + ], + "counts": {}, + "prompt": "You are writing a personalized genetics report. These are the 50 strongest genetic signals by effect size across all results.\n\n\nEthnicities: Example ancestry\nCountries of ancestral origin: Example country\nGender assigned at birth: female\nAge: 42\nSmoking history: Never smoked\nAlcohol use: Rare\nCurrent medications/supplements: example\nDietary preferences: Regular diet (no restrictions)\nPersonal medical history: coronary heart disease\nFamily medical history: type 2 diabetes\n\nDATA FORMAT: Trait | Effect size (\u2191 elevated / \u2193 protective) | Gene | SNP (rsID) | Genotype (risk allele) | Statistical confidence\n\nELEVATED SIGNALS (71):\nCognitive performance | OR 2.00x \u2191 | gene: GENE | snp: rs17 | genotype: AG (risk allele: rs17-A) | p: very strong\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs26 | genotype: AG (risk allele: rs26-A) | p: very strong\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs35 | genotype: AG (risk allele: rs35-A) | p: very strong\nBone density | OR 2.00x \u2191 | gene: GENE | snp: rs53 | genotype: AG (risk allele: rs53-A) | p: very strong\nHeight | OR 2.00x \u2191 | gene: GENE | snp: rs62 | genotype: AG (risk allele: rs62-A) | p: very strong\nType 2 diabetes | OR 2.00x \u2191 | gene: GENE | snp: rs71 | genotype: AG (risk allele: rs71-A) | p: very strong\nBreast cancer | OR 2.00x \u2191 | gene: GENE | snp: rs89 | genotype: AG (risk allele: rs89-A) | p: very strong\nCoronary heart disease | OR 2.00x \u2191 | gene: GENE | snp: rs98 | genotype: AG (risk allele: rs98-A) | p: very strong\nRheumatoid arthritis | OR 2.00x \u2191 | gene: GENE | snp: rs107 | genotype: AG (risk allele: rs107-A) | p: very strong\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs7 | genotype: AG (risk allele: rs7-A) | p: very strong\nBone density | OR 1.90x \u2191 | gene: GENE | snp: rs25 | genotype: AG (risk allele: rs25-A) | p: very strong\nHeight | OR 1.90x \u2191 | gene: GENE | snp: rs34 | genotype: AG (risk allele: rs34-A) | p: very strong\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs43 | genotype: AG (risk allele: rs43-A) | p: very strong\nBreast cancer | OR 1.90x \u2191 | gene: GENE | snp: rs61 | genotype: AG (risk allele: rs61-A) | p: very strong\nCoronary heart disease | OR 1.90x \u2191 | gene: GENE | snp: rs70 | genotype: AG (risk allele: rs70-A) | p: very strong\nRheumatoid arthritis | OR 1.90x \u2191 | gene: GENE | snp: rs79 | genotype: AG (risk allele: rs79-A) | p: very strong\nHeight | OR 1.90x \u2191 | gene: GENE | snp: rs97 | genotype: AG (risk allele: rs97-A) | p: very strong\nType 2 diabetes | OR 1.90x \u2191 | gene: GENE | snp: rs106 | genotype: AG (risk allele: rs106-A) | p: very strong\nBreast cancer | OR 1.70x \u2191 | gene: GENE | snp: rs5 | genotype: AG (risk allele: rs5-A) | p: very strong\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs14 | genotype: AG (risk allele: rs14-A) | p: very strong\nRheumatoid arthritis | OR 1.70x \u2191 | gene: GENE | snp: rs23 | genotype: AG (risk allele: rs23-A) | p: very strong\nHeight | OR 1.70x \u2191 | gene: GENE | snp: rs41 | genotype: AG (risk allele: rs41-A) | p: very strong\nType 2 diabetes | OR 1.70x \u2191 | gene: GENE | snp: rs50 | genotype: AG (risk allele: rs50-A) | p: very strong\nCognitive performance | OR 1.70x \u2191 | gene: GENE | snp: rs59 | genotype: AG (risk allele: rs59-A) | p: very strong\nCoronary heart disease | OR 1.70x \u2191 | gene: GENE | snp: rs77 | genotype: AG (risk allele: rs77-A) | p: very strong\nBone density | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs4 | genotype: AG (risk allele: rs4-A) | p: very strong\nType 2 diabetes | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs8 | genotype: AG (risk allele: rs8-A) | p: very strong\nRheumatoid arthritis | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs16 | genotype: AG (risk allele: rs16-A) | p: very strong\nHeight | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs20 | genotype: AG (risk allele: rs20-A) | p: very strong\nCoronary heart disease | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs28 | genotype: AG (risk allele: rs28-A) | p: very strong\nBone density | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs32 | genotype: AG (risk allele: rs32-A) | p: very strong\nBreast cancer | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs40 | genotype: AG (risk allele: rs40-A) | p: very strong\nRheumatoid arthritis | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs44 | genotype: AG (risk allele: rs44-A) | p: very strong\nCognitive performance | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs52 | genotype: AG (risk allele: rs52-A) | p: very strong\nCoronary heart disease | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs56 | genotype: AG (risk allele: rs56-A) | p: very strong\nType 2 diabetes | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs64 | genotype: AG (risk allele: rs64-A) | p: very strong\nBreast cancer | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs68 | genotype: AG (risk allele: rs68-A) | p: very strong\nHeight | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs76 | genotype: AG (risk allele: rs76-A) | p: very strong\nCognitive performance | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs80 | genotype: AG (risk allele: rs80-A) | p: very strong\nBone density | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs88 | genotype: AG (risk allele: rs88-A) | p: very strong\nType 2 diabetes | \u03b2=+0.400 \u2191 | gene: GENE | snp: rs92 | genotype: AG (risk allele: rs92-A) | p: very strong\nRheumatoid arthritis | OR 1.70x \u2191 | gene: GENE | snp: rs86 | genotype: AG (risk allele: rs86-A) | p: very strong\nBone density | OR 1.70x \u2191 | gene: GENE | snp: rs95 | genotype: AG (risk allele: rs95-A) | p: very strong\nHeight | OR 1.60x \u2191 | gene: GENE | snp: rs13 | genotype: AG (risk allele: rs13-A) | p: very strong\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs22 | genotype: AG (risk allele: rs22-A) | p: very strong\nCognitive performance | OR 1.60x \u2191 | gene: GENE | snp: rs31 | genotype: AG (risk allele: rs31-A) | p: very strong\nCoronary heart disease | OR 1.60x \u2191 | gene: GENE | snp: rs49 | genotype: AG (risk allele: rs49-A) | p: very strong\nRheumatoid arthritis | OR 1.60x \u2191 | gene: GENE | snp: rs58 | genotype: AG (risk allele: rs58-A) | p: very strong\nBone density | OR 1.60x \u2191 | gene: GENE | snp: rs67 | genotype: AG (risk allele: rs67-A) | p: very strong\nType 2 diabetes | OR 1.60x \u2191 | gene: GENE | snp: rs85 | genotype: AG (risk allele: rs85-A) | p: very strong\nCognitive performance | OR 1.60x \u2191 | gene: GENE | snp: rs94 | genotype: AG (risk allele: rs94-A) | p: very strong\nBreast cancer | OR 1.60x \u2191 | gene: GENE | snp: rs103 | genotype: AG (risk allele: rs103-A) | p: very strong\nRheumatoid arthritis | OR 1.40x \u2191 | gene: GENE | snp: rs2 | genotype: AG (risk allele: rs2-A) | p: very strong\nBone density | OR 1.40x \u2191 | gene: GENE | snp: rs11 | genotype: AG (risk allele: rs11-A) | p: very strong\nType 2 diabetes | OR 1.40x \u2191 | gene: GENE | snp: rs29 | genotype: AG (risk allele: rs29-A) | p: very strong\nCognitive performance | OR 1.40x \u2191 | gene: GENE | snp: rs38 | genotype: AG (risk allele: rs38-A) | p: very strong\nBreast cancer | OR 1.40x \u2191 | gene: GENE | snp: rs47 | genotype: AG (risk allele: rs47-A) | p: very strong\nRheumatoid arthritis | OR 1.40x \u2191 | gene: GENE | snp: rs65 | genotype: AG (risk allele: rs65-A) | p: very strong\nBone density | OR 1.40x \u2191 | gene: GENE | snp: rs74 | genotype: AG (risk allele: rs74-A) | p: very strong\nHeight | OR 1.40x \u2191 | gene: GENE | snp: rs83 | genotype: AG (risk allele: rs83-A) | p: very strong\nCognitive performance | OR 1.40x \u2191 | gene: GENE | snp: rs101 | genotype: AG (risk allele: rs101-A) | p: very strong\nType 2 diabetes | OR 1.30x \u2191 | gene: GENE | snp: rs1 | genotype: AG (risk allele: rs1-A) | p: very strong\nCognitive performance | OR 1.30x \u2191 | gene: GENE | snp: rs10 | genotype: AG (risk allele: rs10-A) | p: very strong\nBreast cancer | OR 1.30x \u2191 | gene: GENE | snp: rs19 | genotype: AG (risk allele: rs19-A) | p: very strong\nRheumatoid arthritis | OR 1.30x \u2191 | gene: GENE | snp: rs37 | genotype: AG (risk allele: rs37-A) | p: very strong\nBone density | OR 1.30x \u2191 | gene: GENE | snp: rs46 | genotype: AG (risk allele: rs46-A) | p: very strong\nHeight | OR 1.30x \u2191 | gene: GENE | snp: rs55 | genotype: AG (risk allele: rs55-A) | p: very strong\nCognitive performance | OR 1.30x \u2191 | gene: GENE | snp: rs73 | genotype: AG (risk allele: rs73-A) | p: very strong\nBreast cancer | OR 1.30x \u2191 | gene: GENE | snp: rs82 | genotype: AG (risk allele: rs82-A) | p: very strong\nCoronary heart disease | OR 1.30x \u2191 | gene: GENE | snp: rs91 | genotype: AG (risk allele: rs91-A) | p: very strong\nBone density | OR 1.30x \u2191 | gene: GENE | snp: rs109 | genotype: AG (risk allele: rs109-A) | p: very strong\n\nPROTECTIVE SIGNALS (29):\nCoronary heart disease | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs0 | genotype: AG (risk allele: rs0-A) | p: very strong\nBreast cancer | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs12 | genotype: AG (risk allele: rs12-A) | p: very strong\nCognitive performance | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs24 | genotype: AG (risk allele: rs24-A) | p: very strong\nType 2 diabetes | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs36 | genotype: AG (risk allele: rs36-A) | p: very strong\nHeight | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs48 | genotype: AG (risk allele: rs48-A) | p: very strong\nBone density | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs60 | genotype: AG (risk allele: rs60-A) | p: very strong\nRheumatoid arthritis | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs72 | genotype: AG (risk allele: rs72-A) | p: very strong\nCoronary heart disease | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs84 | genotype: AG (risk allele: rs84-A) | p: very strong\nBreast cancer | \u03b2=+0.400 \u2193 | gene: GENE | snp: rs96 | genotype: AG (risk allele: rs96-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs3 | genotype: AG (risk allele: rs3-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs6 | genotype: AG (risk allele: rs6-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs9 | genotype: AG (risk allele: rs9-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs15 | genotype: AG (risk allele: rs15-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs18 | genotype: AG (risk allele: rs18-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs21 | genotype: AG (risk allele: rs21-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs27 | genotype: AG (risk allele: rs27-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs30 | genotype: AG (risk allele: rs30-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs33 | genotype: AG (risk allele: rs33-A) | p: very strong\nBone density | OR 0.80x \u2193 | gene: GENE | snp: rs39 | genotype: AG (risk allele: rs39-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs42 | genotype: AG (risk allele: rs42-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs45 | genotype: AG (risk allele: rs45-A) | p: very strong\nRheumatoid arthritis | OR 0.80x \u2193 | gene: GENE | snp: rs51 | genotype: AG (risk allele: rs51-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs54 | genotype: AG (risk allele: rs54-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs57 | genotype: AG (risk allele: rs57-A) | p: very strong\nCoronary heart disease | OR 0.80x \u2193 | gene: GENE | snp: rs63 | genotype: AG (risk allele: rs63-A) | p: very strong\nCognitive performance | OR 0.80x \u2193 | gene: GENE | snp: rs66 | genotype: AG (risk allele: rs66-A) | p: very strong\nHeight | OR 0.80x \u2193 | gene: GENE | snp: rs69 | genotype: AG (risk allele: rs69-A) | p: very strong\nBreast cancer | OR 0.80x \u2193 | gene: GENE | snp: rs75 | genotype: AG (risk allele: rs75-A) | p: very strong\nType 2 diabetes | OR 0.80x \u2193 | gene: GENE | snp: rs78 | genotype: AG (risk allele: rs78-A) | p: very strong\n\nYour job is to build a hypothesis about this person's biological character from their strongest signals. Not a gene-by-gene tour; a portrait. What kind of metabolism, immune system, and brain does population-level data suggest this profile is associated with? What is the most interesting or unexpected thing about this combination of signals?\n\nStructure:\n**Biological portrait** (3-4 sentences)\nOpen with a direct hypothesis: what does this combination of strong signals most plausibly suggest about how this person's body works? Be specific and opinionated, and frame it as a hypothesis drawn from population statistics, not a fact. Mention the 1-2 most important signals by name.\n\n**Key themes** (3-4 themes, each as a short header + 2 paragraphs)\nChoose the 3-4 most important biological stories in these results. Each theme should:\n- Start with a one-sentence hypothesis about what the signals in this theme collectively suggest about this person's biology\n- Second paragraph: what do the specific genes/SNPs do, and why do they cluster; what does this combination mean together\n- Include specific rsIDs and genotypes where informative\n- Mention both elevated and protective signals within the theme where they interact\n- Skip pseudogenes (LINC, LOC, MIR)\n\n**What stands out** (1 paragraph)\nThe most surprising, counterintuitive, or medically interesting finding in these results: something the person is unlikely to have noticed on their own. Explain why it matters.\n\n**Hypotheses about you** (4 hypotheses, each 2-3 sentences)\nBased on the patterns in these signals, write 4 specific, testable hypotheses about this person's biology or lived experience. Each should be a concrete statement about something that may be true about them \u2014 how they feel, how their body tends to work, what they may notice about themselves \u2014 grounded in the strongest signals. Frame each as \"People with this signal pattern tend to...\" or \"This combination of variants is consistent with someone who...\". Be direct and specific. These should feel like insights, not disclaimers.\n\nStyle rules:\n- Write for someone who wants to understand their own biology, not a textbook\n- Population-level language throughout: \"population studies associate\", \"carriers tend to show\", never \"your genome does X\"\n- Be specific: name the genes, cite rsIDs, note genotypes where the user's specific variant is informative\n- Do not recommend clinical tests, doctors, or lifestyle changes\n- 700-900 words total\n\nAfter the report, append exactly this block (required, verbatim format):\n\nCHAT_QUESTIONS:\n- [a question about the most prominent gene or pathway from this report]\n- [a question about how two of the top signals relate to each other]\n- [a question about one of the protective signals or a surprising finding]\n- [a question about what a specific genotype means for one of the key themes]\n\nQuestions must reference specific genes, rsIDs, or findings from this report. Write them as the user would ask them." + } + ] +} diff --git a/tools/bindgen/Cargo.toml b/tools/bindgen/Cargo.toml new file mode 100644 index 0000000..0278816 --- /dev/null +++ b/tools/bindgen/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "explorer-bindgen" +version.workspace = true +edition.workspace = true +license-file = "../../LICENSE" + +[dependencies] +uniffi = { version = "0.29", features = ["cli"] } diff --git a/tools/bindgen/src/main.rs b/tools/bindgen/src/main.rs new file mode 100644 index 0000000..a01b547 --- /dev/null +++ b/tools/bindgen/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + uniffi::uniffi_bindgen_main(); +} From fe6381a14d779bfa3b277869a03e2cd17b07de5e Mon Sep 17 00:00:00 2001 From: Vishakh Vishakh Date: Wed, 21 Oct 2026 13:30:16 +0000 Subject: [PATCH 02/16] Align native client typography, colors and artwork with Vault --- .github/workflows/native-clients.yml | 10 +- .gitignore | 5 + apps/android/app/src/main/AndroidManifest.xml | 2 +- .../com/monadicdna/explorer/MainActivity.kt | 18 +- .../com/monadicdna/explorer/VaultColors.kt | 26 + .../com/monadicdna/explorer/VaultTheme.kt | 71 ++ .../res/drawable-nodpi/vault_app_icon.png | Bin 0 -> 23352 bytes .../res/drawable-nodpi/vault_brand_mark.png | Bin 0 -> 32204 bytes .../res/drawable-nodpi/vault_discover.png | Bin 0 -> 559873 bytes .../main/res/drawable-nodpi/vault_star.png | Bin 0 -> 27828 bytes .../main/res/drawable-nodpi/vault_vault.png | Bin 0 -> 37551 bytes .../res/drawable-nodpi/vault_wordmark.png | Bin 0 -> 15579 bytes .../src/main/res/font/eb_garamond_medium.ttf | Bin 0 -> 563744 bytes .../src/main/res/font/space_grotesk_bold.ttf | Bin 0 -> 86516 bytes .../src/main/res/font/space_grotesk_light.ttf | Bin 0 -> 86612 bytes .../main/res/font/space_grotesk_regular.ttf | Bin 0 -> 86588 bytes .../app/src/main/res/raw/ebgaramond_ofl.txt | 93 +++ .../app/src/main/res/raw/spacegrotesk_ofl.txt | 93 +++ .../AppIcon.appiconset/AppIcon.png | Bin 0 -> 23352 bytes .../AppIcon.appiconset/Contents.json | 14 + .../Explorer/Assets.xcassets/Contents.json | 6 + .../vault_blue100.colorset/Contents.json | 38 + .../vault_blue200.colorset/Contents.json | 38 + .../vault_blue900.colorset/Contents.json | 38 + .../vault_border.colorset/Contents.json | 38 + .../vault_brand_mark.imageset/Contents.json | 12 + .../vault_brand_mark.png | Bin 0 -> 32204 bytes .../vault_chip.colorset/Contents.json | 38 + .../vault_darkMain.colorset/Contents.json | 29 + .../vault_discover.imageset/Contents.json | 12 + .../vault_discover.png | Bin 0 -> 559873 bytes .../Contents.json | 38 + .../vault_green100.colorset/Contents.json | 38 + .../vault_green200.colorset/Contents.json | 38 + .../vault_green900.colorset/Contents.json | 38 + .../vault_monadicGrey.colorset/Contents.json | 38 + .../vault_offTone.colorset/Contents.json | 38 + .../vault_purple100.colorset/Contents.json | 38 + .../vault_purple200.colorset/Contents.json | 38 + .../vault_purple900.colorset/Contents.json | 38 + .../vault_star.imageset/Contents.json | 12 + .../vault_star.imageset/vault_star.png | Bin 0 -> 27828 bytes .../vault_vault.imageset/Contents.json | 12 + .../vault_vault.imageset/vault_vault.png | Bin 0 -> 37551 bytes .../vault_wordmark.imageset/Contents.json | 12 + .../vault_wordmark.png | Bin 0 -> 15579 bytes .../vault_yellow100.colorset/Contents.json | 38 + .../vault_yellow200.colorset/Contents.json | 38 + .../vault_yellow900.colorset/Contents.json | 38 + apps/ios/Explorer/ExplorerApp.swift | 96 ++- apps/ios/Explorer/Fonts/EBGaramond-Medium.ttf | Bin 0 -> 563744 bytes apps/ios/Explorer/Fonts/SpaceGrotesk-Bold.ttf | Bin 0 -> 86516 bytes .../ios/Explorer/Fonts/SpaceGrotesk-Light.ttf | Bin 0 -> 86612 bytes .../Explorer/Fonts/SpaceGrotesk-Regular.ttf | Bin 0 -> 86588 bytes apps/ios/Explorer/Info.plist | 62 +- apps/ios/Explorer/Licenses/ebgaramond-OFL.txt | 93 +++ .../Explorer/Licenses/spacegrotesk-OFL.txt | 93 +++ apps/ios/Explorer/VaultTheme.swift | 76 ++ apps/ios/ExplorerTests/VaultDesignTests.swift | 30 + apps/ios/project.yml | 1 + design/vault/README.md | 11 + design/vault/app-icon.png | Bin 0 -> 23352 bytes design/vault/art/brand-mark.svg | 4 + design/vault/art/discover.svg | 45 ++ design/vault/art/star.svg | 3 + design/vault/art/vault.svg | 17 + design/vault/art/wordmark.svg | 13 + design/vault/colors.json | 677 ++++++++++++++++++ design/vault/fonts/EBGaramond-Medium.ttf | Bin 0 -> 563744 bytes design/vault/fonts/SpaceGrotesk-Bold.ttf | Bin 0 -> 86516 bytes design/vault/fonts/SpaceGrotesk-Light.ttf | Bin 0 -> 86612 bytes design/vault/fonts/SpaceGrotesk-Regular.ttf | Bin 0 -> 86588 bytes design/vault/fonts/ebgaramond-OFL.txt | 93 +++ design/vault/fonts/spacegrotesk-OFL.txt | 93 +++ design/vault/source.json | 46 ++ scripts/sync-vault-design.py | 53 ++ 76 files changed, 2524 insertions(+), 55 deletions(-) create mode 100644 apps/android/app/src/main/java/com/monadicdna/explorer/VaultColors.kt create mode 100644 apps/android/app/src/main/java/com/monadicdna/explorer/VaultTheme.kt create mode 100644 apps/android/app/src/main/res/drawable-nodpi/vault_app_icon.png create mode 100644 apps/android/app/src/main/res/drawable-nodpi/vault_brand_mark.png create mode 100644 apps/android/app/src/main/res/drawable-nodpi/vault_discover.png create mode 100644 apps/android/app/src/main/res/drawable-nodpi/vault_star.png create mode 100644 apps/android/app/src/main/res/drawable-nodpi/vault_vault.png create mode 100644 apps/android/app/src/main/res/drawable-nodpi/vault_wordmark.png create mode 100644 apps/android/app/src/main/res/font/eb_garamond_medium.ttf create mode 100644 apps/android/app/src/main/res/font/space_grotesk_bold.ttf create mode 100644 apps/android/app/src/main/res/font/space_grotesk_light.ttf create mode 100644 apps/android/app/src/main/res/font/space_grotesk_regular.ttf create mode 100644 apps/android/app/src/main/res/raw/ebgaramond_ofl.txt create mode 100644 apps/android/app/src/main/res/raw/spacegrotesk_ofl.txt create mode 100644 apps/ios/Explorer/Assets.xcassets/AppIcon.appiconset/AppIcon.png create mode 100644 apps/ios/Explorer/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_blue100.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_blue200.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_blue900.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_border.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_brand_mark.imageset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_brand_mark.imageset/vault_brand_mark.png create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_chip.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_darkMain.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_discover.imageset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_discover.imageset/vault_discover.png create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_discoverCardsBG.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_green100.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_green200.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_green900.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_monadicGrey.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_offTone.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_purple100.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_purple200.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_purple900.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_star.imageset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_star.imageset/vault_star.png create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_vault.imageset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_vault.imageset/vault_vault.png create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_wordmark.imageset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_wordmark.imageset/vault_wordmark.png create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_yellow100.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_yellow200.colorset/Contents.json create mode 100644 apps/ios/Explorer/Assets.xcassets/vault_yellow900.colorset/Contents.json create mode 100644 apps/ios/Explorer/Fonts/EBGaramond-Medium.ttf create mode 100644 apps/ios/Explorer/Fonts/SpaceGrotesk-Bold.ttf create mode 100644 apps/ios/Explorer/Fonts/SpaceGrotesk-Light.ttf create mode 100644 apps/ios/Explorer/Fonts/SpaceGrotesk-Regular.ttf create mode 100644 apps/ios/Explorer/Licenses/ebgaramond-OFL.txt create mode 100644 apps/ios/Explorer/Licenses/spacegrotesk-OFL.txt create mode 100644 apps/ios/Explorer/VaultTheme.swift create mode 100644 apps/ios/ExplorerTests/VaultDesignTests.swift create mode 100644 design/vault/README.md create mode 100644 design/vault/app-icon.png create mode 100644 design/vault/art/brand-mark.svg create mode 100644 design/vault/art/discover.svg create mode 100644 design/vault/art/star.svg create mode 100644 design/vault/art/vault.svg create mode 100644 design/vault/art/wordmark.svg create mode 100644 design/vault/colors.json create mode 100644 design/vault/fonts/EBGaramond-Medium.ttf create mode 100644 design/vault/fonts/SpaceGrotesk-Bold.ttf create mode 100644 design/vault/fonts/SpaceGrotesk-Light.ttf create mode 100644 design/vault/fonts/SpaceGrotesk-Regular.ttf create mode 100644 design/vault/fonts/ebgaramond-OFL.txt create mode 100644 design/vault/fonts/spacegrotesk-OFL.txt create mode 100644 design/vault/source.json create mode 100644 scripts/sync-vault-design.py diff --git a/.github/workflows/native-clients.yml b/.github/workflows/native-clients.yml index 09e1e96..4cf70b1 100644 --- a/.github/workflows/native-clients.yml +++ b/.github/workflows/native-clients.yml @@ -17,6 +17,8 @@ jobs: distribution: temurin java-version: 21 - uses: android-actions/setup-android@v3 + with: + packages: platform-tools - run: sdkmanager 'platforms;android-35' 'build-tools;35.0.0' 'ndk;27.2.12479018' - run: python3 scripts/prepare-public-sample.py - run: node scripts/build-native.mjs android arm64-v8a @@ -51,4 +53,10 @@ jobs: shell: bash run: | simulator_id=$(xcrun simctl list devices available -j | python3 -c 'import json,sys; d=json.load(sys.stdin); print(next(v["udid"] for devices in d["devices"].values() for v in devices if v["name"].startswith("iPhone")))') - xcodebuild -project apps/ios/Explorer.xcodeproj -scheme Explorer -destination "platform=iOS Simulator,id=$simulator_id" -derivedDataPath apps/ios/build test CODE_SIGNING_ALLOWED=NO + xcodebuild -resultBundlePath apps/ios/ExplorerTests.xcresult -project apps/ios/Explorer.xcodeproj -scheme Explorer -destination "platform=iOS Simulator,id=$simulator_id" -derivedDataPath apps/ios/build test CODE_SIGNING_ALLOWED=NO + + - uses: actions/upload-artifact@v7 + if: always() + with: + name: explorer-ios-test-results + path: apps/ios/ExplorerTests.xcresult diff --git a/.gitignore b/.gitignore index aaf81fd..11c7b07 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,8 @@ yarn-error.log* /.test-data/ /apps/ios/TestData/ /apps/android/app/src/androidTest/assets/public-sample/ + +# Kotlin compiler workspace cache +apps/android/.kotlin/ + +apps/ios/*.xcresult/ diff --git a/apps/android/app/src/main/AndroidManifest.xml b/apps/android/app/src/main/AndroidManifest.xml index b0bd6cf..882a145 100644 --- a/apps/android/app/src/main/AndroidManifest.xml +++ b/apps/android/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - + diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt index 1fe9fdb..7d1469e 100644 --- a/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt @@ -24,6 +24,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import androidx.lifecycle.ViewModelProvider import org.json.JSONObject import java.io.ByteArrayOutputStream @@ -33,7 +34,7 @@ class MainActivity: ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) intent?.data?.takeIf{it.scheme=="monadicexplorer"&&it.host=="auth"}?.let(model::receiveAuth) - setContent { MaterialTheme { ExplorerApp(model) } } + setContent { VaultTheme { ExplorerApp(model) } } } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent);setIntent(intent);intent.data?.takeIf{it.scheme=="monadicexplorer"&&it.host=="auth"}?.let(model::receiveAuth) } } @@ -65,16 +66,15 @@ private fun readDocument(context: android.content.Context, uri: Uri, max: Int=15 }} fun exportText(name: String, content: String){exportContent=content;export.launch(name)} Scaffold( - topBar={TopAppBar(title={Text("Monadic DNA Explorer")},actions={TextButton(onClick={tab="Vault"}){Text(if(model.metadata.optInt("count")>0)"DNA loaded" else "Import DNA")}})}, - bottomBar={NavigationBar { listOf("Home","Browse","Results","Chat","More").forEachIndexed{index,name->NavigationBarItem(selected=tab==name,onClick={tab=name},label={Text(name)},icon={Icon(when(index){0->Icons.Default.Home;1->Icons.Default.Search;2->Icons.AutoMirrored.Filled.List;3->Icons.AutoMirrored.Filled.Chat;else->Icons.Default.MoreHoriz},contentDescription=name)})} }} + topBar={TopAppBar(title={Text("Explorer",style=MaterialTheme.typography.titleLarge)},actions={TextButton(onClick={tab="Vault"}){Text(if(model.metadata.optInt("count")>0)"DNA loaded" else "Import DNA")}})}, + bottomBar={NavigationBar(containerColor=MaterialTheme.colorScheme.background) { listOf("Home","Browse","Results","Chat","More").forEachIndexed{index,name->NavigationBarItem(selected=tab==name,onClick={tab=name},label={Text(name)},icon={Icon(when(index){0->Icons.Default.Home;1->Icons.Default.Search;2->Icons.AutoMirrored.Filled.List;3->Icons.AutoMirrored.Filled.Chat;else->Icons.Default.MoreHoriz},contentDescription=name)})} }} ){padding-> Column(Modifier.padding(padding).fillMaxSize()){ if(model.busy){LinearProgressIndicator(Modifier.fillMaxWidth());Row(Modifier.padding(horizontal=16.dp),horizontalArrangement=Arrangement.SpaceBetween){Text(model.status,Modifier.weight(1f));TextButton(onClick=model::cancel){Text("Cancel")}}} model.error?.let{message->Card(Modifier.padding(12.dp)){Column(Modifier.padding(12.dp)){Text(message,color=MaterialTheme.colorScheme.error);TextButton(onClick={model.error=null}){Text("Dismiss")}}}} when(tab){ "Home"->ScreenColumn{ - Text("Your DNA. Your discoveries.",style=MaterialTheme.typography.headlineLarge) - Text("Explore genetic research, match your variants on device, and understand associations with private provider-based analysis.") + VaultHero() Button(onClick={tab="Vault"}){Text("Import your DNA")} OutlinedButton(onClick={tab="Browse";model.browse("","",true)}){Text("Browse studies")} Text("${model.metadata.optInt("count")} variants • ${model.results.size} saved study matches") @@ -92,7 +92,7 @@ private fun readDocument(context: android.content.Context, uri: Uri, max: Int=15 "Vault"->VaultScreen(model,{importDNA.launch(arrayOf("text/*","application/gzip","application/octet-stream"))}){name,content->exportText(name,content)} "Settings"->SettingsScreen(model) "Account"->AccountScreen(model) - "More"->ScreenColumn{listOf("Reports","Vault","Settings","Account").forEach{name->OutlinedButton(onClick={tab=name},modifier=Modifier.fillMaxWidth()){Text(name)}};Text("Genotype formats: 23andMe, AncestryDNA, MyHeritage, FTDNA, LivingDNA, Mapmygenome, and Monadic DNA. Compressed .gz files are supported. Genetic data is processed on device.")} + "More"->ScreenColumn{VaultArt(R.drawable.vault_vault);Text("Entirely in your hands.",style=MaterialTheme.typography.headlineMedium);listOf("Reports","Vault","Settings","Account").forEach{name->OutlinedButton(onClick={tab=name},modifier=Modifier.fillMaxWidth()){Text(name)}};Text("Genotype formats: 23andMe, AncestryDNA, MyHeritage, FTDNA, LivingDNA, Mapmygenome, and Monadic DNA. Compressed .gz files are supported. Genetic data is processed on device.")} } } } @@ -127,7 +127,8 @@ private fun readDocument(context: android.content.Context, uri: Uri, max: Int=15 @Composable private fun ResultCard(result: JSONObject){ val evidence=remember(result.toString()){Core.obj("evidence",result)} - Card(Modifier.fillMaxWidth()){Column(Modifier.padding(16.dp),verticalArrangement=Arrangement.spacedBy(5.dp)){Text(result.optString("traitName"),fontWeight=FontWeight.Bold);Text("${result.optString("matchedSnp")}: ${result.optString("userGenotype")} • ${result.optString("effectType","OR")} ${result.optDouble("riskScore")}");Text(result.optString("riskLevel"));Text(evidence.getString("label"),style=MaterialTheme.typography.labelSmall)}} + val palette=remember(result.toString()){vaultCardPalette(Core.obj("preview_category",result).getString("id"))} + Card(Modifier.fillMaxWidth(),shape=androidx.compose.foundation.shape.RoundedCornerShape(40.dp),colors=CardDefaults.cardColors(containerColor=palette.first,contentColor=palette.second)){Column(Modifier.padding(24.dp),verticalArrangement=Arrangement.spacedBy(10.dp)){androidx.compose.foundation.Image(androidx.compose.ui.res.painterResource(R.drawable.vault_star),contentDescription=null,modifier=Modifier.size(28.dp));Text(result.optString("traitName"),fontFamily=Garamond,fontWeight=FontWeight.Medium,fontSize=24.sp);Text("${result.optString("matchedSnp")}: ${result.optString("userGenotype")} • ${result.optString("effectType","OR")} ${result.optDouble("riskScore")}");Text(result.optString("riskLevel"));Text(evidence.getString("label"),style=MaterialTheme.typography.labelSmall)}} } @Composable private fun ResultsScreen(model: ExplorerModel,export: (String,String)->Unit,importResults: ()->Unit){ @@ -150,7 +151,7 @@ private fun readDocument(context: android.content.Context, uri: Uri, max: Int=15 Button(onClick={model.sendChat(message);message=""},enabled=!model.busy&&message.isNotBlank()){Text("Send")} } } -@Composable private fun ReportScreen(model: ExplorerModel,export: ()->Unit){ScreenColumn{Text("Genetic research reports",style=MaterialTheme.typography.headlineMedium);Consent(model);listOf("Overview","Health","Healthspan","Top traits").forEach{kind->OutlinedButton(onClick={model.generateReport(kind)},enabled=!model.busy&&model.results.isNotEmpty()){Text("Generate $kind")}};if(model.report.isNotEmpty()){Text(model.reportTitle,style=MaterialTheme.typography.titleLarge);Text(model.report);Button(onClick=export){Text("Export report")};model.reportQuestions.forEach{question->OutlinedButton(onClick={model.sendChat(question)},enabled=!model.busy){Text(question)}}}}} +@Composable private fun ReportScreen(model: ExplorerModel,export: ()->Unit){ScreenColumn{VaultArt(R.drawable.vault_discover);Text("Genetic research reports",style=MaterialTheme.typography.headlineMedium);Consent(model);listOf("Overview","Health","Healthspan","Top traits").forEach{kind->OutlinedButton(onClick={model.generateReport(kind)},enabled=!model.busy&&model.results.isNotEmpty()){Text("Generate $kind")}};if(model.report.isNotEmpty()){Text(model.reportTitle,style=MaterialTheme.typography.titleLarge);Text(model.report);Button(onClick=export){Text("Export report")};model.reportQuestions.forEach{question->OutlinedButton(onClick={model.sendChat(question)},enabled=!model.busy){Text(question)}}}}} @Composable private fun VaultScreen(model: ExplorerModel,importDNA: ()->Unit,export: (String,String)->Unit){ var password by remember{mutableStateOf("")};var confirmDelete by remember{mutableStateOf(false)} @@ -160,6 +161,7 @@ private fun readDocument(context: android.content.Context, uri: Uri, max: Int=15 val pass=password;password="";model.openVaultData(pass,sealed) }} ScreenColumn{ + VaultArt(R.drawable.vault_vault) Text("Private on-device vault",style=MaterialTheme.typography.headlineMedium) Text("${model.metadata.optInt("count")} variants • ${model.results.size} results. DNA is held in memory until you explicitly save an encrypted vault.") Row{Checkbox(checked=model.acceptedDisclaimer,onCheckedChange={model.acceptedDisclaimer=it});Text("I understand this is educational research, not medical advice.",style=MaterialTheme.typography.bodySmall)} diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/VaultColors.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/VaultColors.kt new file mode 100644 index 0000000..2bde68a --- /dev/null +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/VaultColors.kt @@ -0,0 +1,26 @@ +// Generated by scripts/sync-vault-design.py; edit design/vault/colors.json. +package com.monadicdna.explorer + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.colorspace.ColorSpaces + +object VaultColors { + val darkMain = Color(0.22352941f, 0.22352941f, 0.22352941f, colorSpace = ColorSpaces.Srgb) + val offTone = Color(1.00000000f, 1.00000000f, 0.98431373f, colorSpace = ColorSpaces.DisplayP3) + val monadicGrey = Color(0.85098039f, 0.85098039f, 0.85098039f, colorSpace = ColorSpaces.Srgb) + val border = Color(0.09019608f, 0.09019608f, 0.09019608f, colorSpace = ColorSpaces.Srgb) + val chip = Color(0.97647059f, 0.92941176f, 1.00000000f, colorSpace = ColorSpaces.DisplayP3) + val discoverCardsBG = Color(0.91764706f, 0.97647059f, 1.00000000f, colorSpace = ColorSpaces.DisplayP3) + val purple100 = Color(0.98039216f, 0.96078431f, 1.00000000f, colorSpace = ColorSpaces.Srgb) + val purple200 = Color(0.95686275f, 0.90980392f, 1.00000000f, colorSpace = ColorSpaces.Srgb) + val purple900 = Color(0.23529412f, 0.03529412f, 0.38823529f, colorSpace = ColorSpaces.DisplayP3) + val blue100 = Color(0.94509804f, 0.96862745f, 0.99215686f, colorSpace = ColorSpaces.DisplayP3) + val blue200 = Color(0.87843137f, 0.92941176f, 0.97647059f, colorSpace = ColorSpaces.DisplayP3) + val blue900 = Color(0.12549020f, 0.21176471f, 0.29411765f, colorSpace = ColorSpaces.DisplayP3) + val green100 = Color(0.94509804f, 0.98039216f, 0.92156863f, colorSpace = ColorSpaces.DisplayP3) + val green200 = Color(0.87450980f, 0.96078431f, 0.82352941f, colorSpace = ColorSpaces.DisplayP3) + val green900 = Color(0.08627451f, 0.16078431f, 0.04313725f, colorSpace = ColorSpaces.DisplayP3) + val yellow100 = Color(1.00000000f, 0.97254902f, 0.91764706f, colorSpace = ColorSpaces.DisplayP3) + val yellow200 = Color(1.00000000f, 0.92941176f, 0.77647059f, colorSpace = ColorSpaces.DisplayP3) + val yellow900 = Color(0.27058824f, 0.18823529f, 0.00784314f, colorSpace = ColorSpaces.DisplayP3) +} diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/VaultTheme.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/VaultTheme.kt new file mode 100644 index 0000000..9079011 --- /dev/null +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/VaultTheme.kt @@ -0,0 +1,71 @@ +package com.monadicdna.explorer + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.* +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.Font +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp + +val SpaceGrotesk = FontFamily(Font(R.font.space_grotesk_light, FontWeight.Light), Font(R.font.space_grotesk_regular), Font(R.font.space_grotesk_bold, FontWeight.Bold)) +val Garamond = FontFamily(Font(R.font.eb_garamond_medium, FontWeight.Medium)) + +@Composable fun VaultTheme(content: @Composable () -> Unit) { + // Vault deliberately uses a light app canvas with dark brand panels. + val base = Typography() + fun TextStyle.brand() = copy(fontFamily = SpaceGrotesk) + MaterialTheme( + colorScheme = lightColorScheme( + primary = VaultColors.darkMain, onPrimary = Color.White, + secondary = VaultColors.purple900, onSecondary = Color.White, + primaryContainer = VaultColors.purple200, onPrimaryContainer = VaultColors.purple900, + secondaryContainer = VaultColors.purple100, onSecondaryContainer = VaultColors.purple900, + background = VaultColors.offTone, onBackground = VaultColors.darkMain, + surface = VaultColors.offTone, onSurface = VaultColors.darkMain, + surfaceVariant = VaultColors.purple100, onSurfaceVariant = VaultColors.darkMain, + surfaceContainer = Color.White, surfaceContainerHigh = VaultColors.purple100, + outline = VaultColors.border + ), + typography = Typography( + displayLarge=base.displayLarge.brand(), displayMedium=base.displayMedium.brand(), displaySmall=base.displaySmall.brand(), + headlineLarge=base.headlineLarge.brand().copy(fontWeight=FontWeight.Bold), headlineMedium=base.headlineMedium.brand().copy(fontWeight=FontWeight.Bold), headlineSmall=base.headlineSmall.brand(), + titleLarge=base.titleLarge.brand(), titleMedium=base.titleMedium.brand(), titleSmall=base.titleSmall.brand(), + bodyLarge=base.bodyLarge.brand().copy(fontWeight=FontWeight.Light), bodyMedium=base.bodyMedium.brand(), bodySmall=base.bodySmall.brand(), + labelLarge=base.labelLarge.brand(), labelMedium=base.labelMedium.brand(), labelSmall=base.labelSmall.brand() + ), + shapes = Shapes(extraSmall=RoundedCornerShape(10.dp), small=RoundedCornerShape(16.dp), medium=RoundedCornerShape(24.dp), large=RoundedCornerShape(32.dp), extraLarge=RoundedCornerShape(40.dp)), + content=content + ) +} + +@Composable fun VaultArt(resource: Int, modifier: Modifier = Modifier) { + Image(painterResource(resource), contentDescription=null, modifier=modifier.height(120.dp).fillMaxWidth()) +} + +@Composable fun VaultHero() { + Column(Modifier.fillMaxWidth().background(VaultColors.darkMain, RoundedCornerShape(32.dp)).padding(24.dp), horizontalAlignment=Alignment.CenterHorizontally, verticalArrangement=Arrangement.spacedBy(20.dp)) { + Image(painterResource(R.drawable.vault_brand_mark), contentDescription=null, modifier=Modifier.size(64.dp)) + Image(painterResource(R.drawable.vault_wordmark), contentDescription="Monadic DNA", modifier=Modifier.fillMaxWidth().height(36.dp)) + Text("EXPLORER", color=Color.White, style=MaterialTheme.typography.labelMedium, letterSpacing=4.sp) + Text("Your DNA. Your discoveries.", color=Color.White, style=MaterialTheme.typography.headlineLarge) + Text("Explore genetic research while your DNA remains private, protected, and in your hands.", color=Color.White, style=MaterialTheme.typography.bodyLarge) + } +} + +// The shared Rust core classifies traits; native views choose the corresponding Vault palette. +fun vaultCardPalette(category: String): Pair = when(category) { + "cardiometabolic", "immune", "medication" -> VaultColors.green200 to VaultColors.green900 + "sleep_energy" -> VaultColors.yellow200 to VaultColors.yellow900 + "body_composition" -> VaultColors.blue200 to VaultColors.blue900 + else -> VaultColors.purple200 to VaultColors.purple900 +} diff --git a/apps/android/app/src/main/res/drawable-nodpi/vault_app_icon.png b/apps/android/app/src/main/res/drawable-nodpi/vault_app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7d78dcff044760879ed86ba7d34bebe3f44c15 GIT binary patch literal 23352 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

DCf*n_{K^V8Q{Fcczhao<48jrmkLg{@Gr97di9 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 IS822V37zza!2kdN literal 0 HcmV?d00001 diff --git a/apps/android/app/src/main/res/drawable-nodpi/vault_brand_mark.png b/apps/android/app/src/main/res/drawable-nodpi/vault_brand_mark.png new file mode 100644 index 0000000000000000000000000000000000000000..768e218a9a321d94b1eda741728cbc7f0db3d5bc GIT binary patch literal 32204 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%0AtH4DkU|Fw+xGTK!J}nDez|$%l5vHwafcB0r#|5T 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 literal 0 HcmV?d00001 diff --git a/apps/android/app/src/main/res/drawable-nodpi/vault_discover.png b/apps/android/app/src/main/res/drawable-nodpi/vault_discover.png new file mode 100644 index 0000000000000000000000000000000000000000..d9652f62bab3e1db2cc1bf4baf3f6b9498b69543 GIT binary patch literal 559873 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≤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⪋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

3#(%bms*S$ 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 rmJ*OK<__NV(7|7WZJ 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

VCc$%qt4{`h-t#Fu@a!-s#?*SC=uu@9Upk<{OrO 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 literal 0 HcmV?d00001 diff --git a/apps/android/app/src/main/res/drawable-nodpi/vault_star.png b/apps/android/app/src/main/res/drawable-nodpi/vault_star.png new file mode 100644 index 0000000000000000000000000000000000000000..99ffb121bf478c5aaa1dfb5b3bb2e9f3f3b64d26 GIT binary patch literal 27828 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 J(Q3}Y{{n#qe1rf1 literal 0 HcmV?d00001 diff --git a/apps/android/app/src/main/res/drawable-nodpi/vault_vault.png b/apps/android/app/src/main/res/drawable-nodpi/vault_vault.png new file mode 100644 index 0000000000000000000000000000000000000000..1df01bcf0bcb5ce6dc8a5c9265b400b6a409809c GIT binary patch literal 37551 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 z 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 z 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

SOe=dXzqnbE9K8 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�wq?iTUv^tzVXKqA4W=d} zq^cA8I*mPusMbRErCrw-%Du1Ux98@z=ZjC}NIQElyR{&{B|E#NAip(xZDvxk)ta0H zRkVbNJ&1%RAvz`b<*V1~xRQK{^h`lpLO}8&(Tf$eZLfE4s4u86n@nwY)|=11UbAb7 zy)r$$(r&9tORF+^ceF*cZuiB;=T~Ryhs?h|yZXV7;WTeCT$D3vox0o_7zZTMBw_@S zPXWgDb}gm=j?24og5s^GpT6+)(_2hCcbayxHEfN1Qa;&tXZ?EgJrIjSdW~G%EEOCV|+|ZVroSaKz8M-g6h1+$uVT8aJh+!uv z;L<=?3N(mefa|1g?)77Wtu^GYNIojB@~0|)K~q6``_5Vj?VX{idDuRv|&aR?jr zK1fP01#0J1iQ3l$eHZW2UJRC5zl{gz7_R*ZcGqkD2cBJ z;9(H~xVDvSpBRH)P)xc23-(f2H9|24plrESJQ6RfR7WHE;jp+^KYVJEf2(EozlBb}BW;(ZCMVTTFM z#uPY&edOo05j7kR?;7qaMLh8UXxAauHRU3I0?|f}6>simqBP*NN+?(Xe@V&Tqsp(7 z{5yDEuw{pG1IoR)(0^gDas?=63$O|(l!YM{L4abw_Xq0?d6rWDeFZIoe{OG}Jw1Fr zgac}m*4I(r<{_Rpjau?2Q=~O+;@G!D&7S_;SrEJ|E~E8p2Ep z+$O>Em5-+v5qnUnd&X1p$EByro2Fid>IOc(mqIn|Rxs+c`?y!lRDV~D72yRdzpr>E z!=iwCH*5YCe??@AyD^T7x%}o*j*`(SU!hTRlOIjcESPSA}mXeZg zODN3FN=@CkAGW~#jk^~y!!dn?X+oZId=zM3ik|zw<)wc7SRjXCJRkJ)=EUb!6(aB zBH--bB|pEP`&|{e-9_vZId=1QczKP;81`ZOl+GIMFvqljRz1kXA)RXwThO;FPmPtl zy50$Rbxp?}^6292;=JH5&`$U>a9_je&@L1Da)!_G8uBA1A1wBS3d0)zY|!-toy1sY zF`N%V-+veNXK+7y-@)2Pc;4y#a+b>ukniB3O>RTFCMecF_6T_>i@e%>3;>G9#9)oZD4K2j1Y$Am7lD{U0|oeaBq#p1A~~%&4056Z zFXZnFjx5ys4E_NMyk7-huXu-e!7ao}V&wTZ=!( z>cHW+Z(M-`58&uK4hPry8znz{#Z_?bE6(whOMY$_75MD|JXn)L`LQN(uPe-aiVp?s zQJl&VRu`lO7H3d{9^_O$5riKI!9k@02bGZffrsZ8ypgB@bLi!s^#Z;}^Q$2B>ii=b zv8SPvPrEqvqF#FdKd4vd_bdLs(>=@A1U<{|5b(pz0;`!RBdWyAiCtn+<(>k<--aCheWuoV( zj9udX?x2?Z+i7--=Lx~*dpNb?`RPDwxPKg#r?r(@BO)tcpUdS#?4Pg{1r2rFD2M%? zOLhJqI)ylkqc5wdX8WQ=JE{w9eV;fT5ltRXQ-s4gWQyx)-Mw^gW8>bXyW5t6GfD>@! z$DJL)7R{1hed^#js#nQBwO-;3ga>Q8>U;t5B0=SHjHCcHLtJ_g?}48$pm~ln3?x5@ z_dv48)aOKnc-})X#sYY;=l)!2J)Jk89m2_Jt)#J%q~x~|bxLhd1#2st_LRm(=&3aA zDN#&MiSyu`2%cgs2F}g2Pa`RsfKehtbF{02Kc$s3MvJo-13AN|XFaOw#QNTjOM5j3{qQ70seMMMeD%cTW^LLL|( zdgx3B@srt~uEDK?U;OkeZc7S1C0?b*OlLC0Q>XeY1vru5>4J6|k5r0wy@-UWP;yo4 z#2O>uzrspIBaHH2<$OWr`9r5koPawqp9NfvU!9+*4fMlRE$UVBPpy~u0^tE)P@O-a z@h+%YjvJ-|)bw$lPH;Q;GQ?E0Vi$Uh=Dp}on#c4U^LTrpw`ne>V7tD7&wlJb=q<2z zPMd(!d=c4n~PP$+;SCUw%b^x59sHrjg$y7=h= zA%X9NmX+ZA4RAkaY7Na|jBB1BBbwmKXyYSV)TxD~2;BPTl%MrO9~8nLoPE+y=*Ccy zA8+_GrML9bFE#h6@&m5m|D~b>731-Yl3yn+4~=~ZP$l_YwivEuR6u~wFMSY;XT2G+8+7{&`mKYa+ixvQm{Lq+`PafBv(xzzszl!m| zZXCI=`L5Rv{RuH1)_=9D`}klm#={`RcsTIWJNsYR9gOkd-8MbOL+|~~Z4VF5i1C1) z5bx%tz`N0ot*3Wj#>WXU&eu_dn|S#KLM#iLPZ-J^mQKOjOGMcQBZ1|I^i4|a+&`k% zj)7K+f>obXYq!t6Oxo?2Un1@HOJ|0MNnLeI75B{+?Ng+I@`9GNphalc^ZpF|I?>@} zO}C=rkEq!N4HQvm10o8opt&z13Z2kS+<@{#_9{)E$*F#-a+70m?cC^ED;!bwwPGHioA~yrs^Y#i1iOVc-24fcv$hk z{j$KloLe)=k_nA4Nk>-nKlzSQs4u0O_*vp%`BWH#wa}bu0`4B*24^SRpvn*rgrV4B zAWa(PvBTaJvBQWahfIK^-rB(Y>*7 z`2cz14J^Od<BIEe6ww2OWkEO!6Q#m0gS^r)OG8J;tX9Z-+(lmZ&9v%Rb4*U6IUz2=rtb-} zxop)JBlPV$#56KSZm4o*r)5KUnc8P=@NanPICdWAy+-~GZEe$fCXi?71n(P?IlW#! zBGLO?O75c`fz-a3%eatJrC8E_O6xg14{)Ez&#tNR|CE^n`PqM{^1sTgf&7w-OVR@W zTg(#3FF8nms^EW{g$MHEZIblN^J9k0<2nVBn@`d1Tja+KnTONKbavvfv_*My_5j!Z z;&(R(vEnISJnK35t#2JXaCEG#qkY-3_Kvo(qw+rQ)zo?73oLK@VSKgypuGM~?LDm0$gq_NOIr0&U+gNuc?-NeUula z*V)p5PG#0W^&d7hNzXSmaX!NR%g_r`PMLiv&{}8E@r(EpZs+7ZHhbRd>b$T$Uf}PX zOD%!79Kd@qm=zVY2q%UF7yo6s74XO4SgX(xUspv>%MbAbolP@ z=mmFn|4xTr*}6jZk(^wp%LV}0urmo;%J;B*6vESDRN2!xRWS`{ojAhZMj$c)=?qBE zkpU<;RE^-64|9%2YfLB}0%?H$hL=SyQKOVUqwG%=Zc96*?OYq7#{3prqF_d(1s;1z z^%R`3m2*Za8>$yN0ItpF)bL$Bm7!fds8Q&Mf;n-QB5^n);9g4y83Nyb)VbK4G|y;X+|;z#Zk(57UeuXtwWd-^PEAcpPD_iZ z%1=r+X^nF-GIPtyax*jL7`3MKr2MK5i;2z)nJkZ+=g&8p=Fc~SQYE4=;;Yqh%9G%W zw}QO$qz5nn)?gmd-NKdNdjGFt4!c_KX|xu{$K|Kg54E&zt53;~i!aG&+|^dw+FW1P z(pp>9&{$E?=riW8sy7tW+4QElnbo;-D;DSFEv}fGTb()Aq_@=-80uH$4^|fF3tTRI zRI-|)e0_d#F+R9vjr1E$ZDT( zw8DNJGi^0wP%Fj;@#dgDmv$_i`S9Z`HtyX5Nhwy36Fsc1V|Po-?hf(k^f??pC;u$m z#L_ky>vwd9ckZZH{tRW+IgHu0Sy{E&Mn_%NFY~2G^J$iYDn#TAQN_*(s)UYt0oO5O zU(RU?oIbRq(>@KS@1Wmtmw;i=eHEo}!2x-ClH^!s``sQ7F1y*{kq?^ZCpI~X7bdyW z?|Pkuo9D+jJDtt(^Nk|vG$Iznn^z>vPfW^mlzUi`d0E2zgrp>VEHj5@6Eqy+J!r>T zsmJL4>k)3p$|9>Pt!6Zt_zq8z-ls~Gbbf%JAs8MxTKA=8dk^lft7cvEesvpMI5rk<`EQ~Ztxukq7fc*A8F3lkVg%^L7X>2#gu z46R|XD@gEjg|#w^_S@5aX!#N{)vY#oHOPhy=QnJa<&qG!vo2OC)S!JyB7b6PuZ!ZQ z&8P)V*wdVM`3+lI^*VZqD&tduns-p8N_-U9)O3ZV!86DgX* z_rUy`lbAnB7<<7>N7DhCzIF6Gnp0MgaqdWJDVeRfiLD;Ohx+Iyk(KHxO1 zem7Iyr`5G{wHj)JKfLhxrqdL&)y5Ct13hF=b<;zR--BP++FP^`)*+0FSZeL8Ei8$S z!PY0xq_MH{qvf=*Q@vYi0N>~lH_)7eB&v$rds&Ik3ohYMbBW8GOJGJQKKAhH?8V%` z?NnIhy0LboP2YimHE^f4;8iMS-OEjjb!);h5)#u>V=ZyIJ6YyAqrsYhR5tPAIXJx1v7c?PVmTkR}el63N(;a9r59?-cM@E&+U=9J+a%P!snpp5sxG+I$c zIY)qz)Ps>kXQnlfJ;-M{lEyZfZ zQXt8fYp`>Jltp5eB4xQ>7GxGB@D3z})DOur;b4Hz77;fl)J)T&yC8HjM33iZNBh^Mg8%yvGJ7H+Q4?E-?6AFtZJcS?wqwzkr|fm73dk>D!f;l z^nLUU&a9MBpH7d;)w`CU)ARN&m<`&;p&Wx28)qd_*A^v4FULV}UY}mt60|d+cX>oC zqJtuP9pd9oPy!1P#{&z|NT^P-8wsj^k7Y|}Rj_h$DF}Pqqk|8%(f*b{3EA!NziU?NDZ*ZikcXb{IXRwIF?yh#RN8%%FTgl1fnHgk_WV zct(k3oh~Z@FUlmKR(qIw%SHNu6|?(^M}@%*5On9rSV^?St}iue8Ok{Ps6h|P(JXN@E~ftB;vahJ;Au`>A`Po>-WB= zV>bCc`3>cZZVE9#Ch)99OyK}M!P2+FvvwvPI?cZp)+xfH>YZS``L$Ex&97z8iJUXz z&94o{o5!dpj%%YCLJ}C-+rfQyrb20l_V;*7V=#rK!Mg-{5NJaKlRkLP2McuEwmCNF z2hE8&G3MCnw2W$K3AIv6_k3g2e1on%e4aTw-H~VKxW-wU_S~P1YkXE*NubOBXX8qm z4VTsox~~4YxU}Z!xX`RyQWn zh?}YvgBX*J^pBpgRq`JScli{x7|*BHiz)eDYaUxC|DkNSTPVhePSA~82~>L>M?i`} z3+cWBwD9&o3n?dB_%HOEVi!({G1$vv41Nz#?wzB=4cvBw^8NzQYVt!;;szqdAm1ZK zYsiPR6g@WM-aLx5CZM$HVf<1YKOQ+y^D0(v>=?I0aBLbSF&sFc6J-&kVNmM*@&=~4$3(*44)z-=kGuO=3}0og zPkFFL(Ea)Kq=O%ZmYk7HbGvtUl`RTul#3 zZ>7>3?SG_n&$QAw-;25@c-^q{Kx2mc46w4`<^w3tEOP?*AW9H5QWU4<{`;XY>+8NO zCn>}UfH6c@H|m*M6`dr;Ek>M9)U@$`Ra4KcY7#dXy@p$Spp|Z9F6dNoHrOkF$Wr#n zZ?k+qyI6x8TA~d6e!0xaH`x&-uND`AX)Q6#aOKKAzrTZi(o98F!F|z;5h?M zM3G&<-`C;pp#YPiL$`JWS)f1*Oln?i9cwspegC`6C!c1%;eu7Q;l|q^>ZBR*`JIDz zmLp;OuGP$wG|)68kZiM&^bFu^KL z9>}#PSxiy$s!P^O*d$6Hb}qc5r|)6w9Vr8>FK&@1+hK{u45X-WN}M$s)4@1vlfS`f zjBM2m@c)2Ds{_!jlRqTxKsTB=Sj)3G+)S(6tf!v&lh0w}CB0toJoM)%f>uJ!Dm@5k ziTBy|U`$0E>Q>%}8+}*Pw7>VZeNFq9EL^yxf0&(GIo8}fwo+cfo?Ezb^!)rb6%@IFX0%82Wcr$xEc2VRl_ih(b5Xi4}h+DXq269Pg=dFkd+&nVrWTOgSt z8(eAj2ovt8ls_n~Z1J)%@=wgn2(uPM&wYU>>_7XJ84k*F4Kak$OnJ&s&n*_vFQsE^rmuXPn$fOYFjTPS}ci_K#6h(8&J>MvxMfSd?!Gxy)paeVdA6#Ysyk}EySf%` zuWQ)VUe(^_@wByHELiTD=csC{Yl=*Yac^vl5ZAQ*4makpeqTj+g^z#G=uxP}Zdy=F zwkE#t&f1}f=%k3{%$yV*v9(tIyW<6VF8^uH(7H!! z#yz(#duB%2CPbx!o`A1bj9-Nljn#_Q2gd$W9!Et(wXE|PDq@xhPRDW3u@!X4<3x88 z>ZaHYv|jzO@@Hn0hxZi>U>BfOByO2bF<#YkBOUX?uG$0#HPO(t2DVSZ8|q`(yW_K5 zU#p%-LqiuT?_Lz2&ezO8@Wx2rPI{d{#NFODde;OU;x?UJ%sJSD+GytG zLWUE5uTE7NvIl`NLP9_;rEKMlvOmRm5BSX9%k4pG%x|&VgHOx2JxKKw_Ml}!dytye zZIyxg%CtR73v3im6twB}$}y_KgL(xX`0G5Tff`OLgQOhu_npQ~-wwIhJ8ws&M?XspP)3AF<>6FG1F!J+%gRaZ>b?d0g|& zZ-J#5!_rJ;_b$IKpJbm&tN)d5gB_+grZBZgxK&q`A9V5j*&MNaP%^Pc4*>ZfKN%N= zd+sigz6{oE!Q;r^Ry96w<_V5Oz)TTJ&tMMolK?zc4#o%>LjK4}fYaG6Il0Z*xkd9L zdSlYN;xi&5N-egM5?fYj30s=oT^Ui?ot+eIoz%p(EQn!7c$&L>|+ z^n)#%x*A%$TN`NRt$?v@+J6?G3;!7Vcz65b} z?;Ln#+R9C90CN;2MZP5Gr35<1Gb{N)Zp^G-qh6J)Px>Vq)F`lZ*UGl*2XkQ6Z18zNzZ?V#($;!KHX4`v5Iw* zcBTB>bU6BFE1wkty6pqX3yZ{*yc9=WoW&FSMP;`LexU3YmEED7%svwP!>JoWUOKo3 zRCa*3C_QzPN2Lw8o%OH8UTwLuuQRZG`R#oyMgGvwt{I?daMs8Wohk2|Y`c;-#s%Ll zi`L-x@4IrPkR39xqw=8|8UDvw>^l;1H<$b1eD9t*~1< z1Do_JZ;H*9!rsrQ%WrIBOH-4RQ}K=pQRa1}4Dk+PIwG7|A!YZj%4uTn^UO&q)P)INFX(*FIASK=RK_C z2RxXcWLdxi<?4r}VuF;_ZphD4mh9+kVB$_D6=N7bJhf*fIEG%z{{=k}QkR4MIk$<|<*%{-ks}S~`8DR>i5fgCSMzJksU&bWVJu-?-5x5* zAk$i&G{nmCfRrXr80Yem--_DtxZE5lNp_~P8FliK-;6YWD(^+WI$WKOO3O1?s8X~i z0-6;sm#08K-!o2c5hN*Cu2-q{72lVy=e;Z;${tykFNF5x zLh9ksg#%>ONRaks+nq5_*A8sKJ6pHZ&$%zmBX;K=r>DQxyR#E}@+$1j1J~9UtgM-r zTh&_MM%(iZ{Nnmep=~*6D+MKpae!TU4Zq=8p$xlnEXqVXcIB)1t{k-U9-iKsDd&>5 zLzie~Vf$rhW}q~pea?5-ue6aE-#l9Jo+WJ6lG`%0EgAgT4{)PwN#NO*CN|d8oG*3c zquyI;?x`$Bn~mKNqm8t&%+2r#_N9NEcGmLm#I}5h@2i=4x%@lq_m9hehk?&E@Ytb? z(sqR7fjSv}SNsOs`?*3OP~aFg>ZB21mgRiozLiQlU@d)9T1s@2$CpDo#XeuPik^62 zWq+6*4m|Ndh%XjT9N68CNJD`q4z^UvZE8Xz_?-MudQf;7t;2f7{e8HX0KdS#WG0A( z6;+Rnj1CSat^Hw9^_n%KhYlsJRbLvS{?6w;B$X4=gIE*bL=CREj^Brt03H{D5|7)? z-#NGhJE2{r&IZu9|b3 z)}DYfC#l|Lf5l1%ODeLPBkC#*3sO@ov2or^V_R3TQ7S0Rbf*#B6!n07o^_fkPTBOR zg1CbMTBKy~4rp;z`YkS>(?a9s(NXo5;8bF1?L)pfd*`%OW|ya=l&0PPw)_IS@=jv$ z>Wb=Z7t3$2G?mvT6{m-1nygqs()or~Z^aDanaX zFdD<7>YIU-|fiU8Gzz0oo?{pBxP*~ zDAg6)EVe?V`zWy_)HUR0r^Ux-N^9oy)YmU-uXCinnd|Y*HzYt%T9B%*uB$IAD>H_h zqdTa_Ne7&Z)m5jd6eAbwnJNw?-T;XpvCx2~D>Wm8u+Veq?Fxg%{*7M@pKi&&dv#@g zWleE$Ti9-W<0fyzT{WevDq7NWSx;T}ZN|C!%nWO0j?3&>Xt#G%R{2j4Y=zJfL55Q46bL`^2jElitMUhRPy#>d6?mrAOFAgR zAJ9SZmUB5+^svxDiT)T0wwUXnxTb=%OeuJeUAT*vWSD5EiE({-iMY-@`u_-@_*KF~ zo^Rmb5idOCYF{oZ{( z(~8S0Oul`+msgoq$zRo;y0JowGio=Vl-Ba(leXMEs+ee)#t8Y)0UjSk{0CbHw_9M= z>U7qowXxB9!<&ajOe2RrF;&!_ADllwR!WecV0|~gQ;>_+@zQ+s!C=ov-!r@wQ{m7q zbMGqwMVqyh8xe=A#E7Rmr7oZ+u$$r1JG8h#+<^1kv>Q0d;WV;;%V&m`ftBqR$n1X@>D$(T?$x8FY`_Mczs`@0AhqC&NrgoAk3@Hh_Hz zT20z*MV+MBz6AdzH?1FcEMDA!)SjA_mYSBHZdlaRKvys{G%f0|rFN&<_yhsYiI!d$Gpwna_2Y0gw8CkAEQUIE5WA?;LJy9PSjK z&RVOr_Ww=`Ou`n;UcWhm4eB*rE;z1yC>m2NqCm z(soo~do65`1H^JbHi~UInr_-M5^Dtn(|}mhRR??r8fa&n2e?kN_ykHBa6a=PFdwuo z0(cKDu=TSCycQI}-}?{bVrWPLQvu>0W9WhaNMFm86&Po#knRqnOU<-tHMLWx)_S}D zd(7h&$tcU~Y3l0B*V(Mn$QdDtQ24jc1yNgE+1?-Jt3hGB zPG0h9mJkmeE5uDd&Z@4O-to;JJv?8+^P*WeL>?9P9rpvd?>=iz~mEWF{OjM(Vh`4-C)uOrjeeo>*JLBJ5S2d@)zW(;}gwWrT!6|d==QTciUg|GI zJw=GLOXoIJ&z*g|g#(ZVOYxqhs5s}TM} zg!jaNTjeOI^`iA3VcN;ZDYCm)$Scfq`MG)m%PTbLR$>NpEUt@0I}s%g5yQb?t^!ME z<0nc^lhf4=>PB^wx>?<#mg@PqhLOGXg!htOsXm5kXQ}7hXE(d{Sv={DZ&Oy$q77z} zXph;EON!1S4YRxGfte}H+xiF}W&xKJMWQd}@mx~8#3fBigpxDl458&I@)TUokY`}t zDsRPHBiE3Y1eJibSKP_dK6}@o`cz-iCH)5 zM$Gw?m(pkGGokO$caRrT?n2PEMJwo3IfK-WQDfENr1WStRZUZMCT(iIT0pu^G$}FZ zFz;8ts9(*S%zJE{#AQMdSEBgY)M;20^mFPqmzE;kLlyQJMOw1Kk zVj9o9Vwh+kTqE>6G28lU!@o(Vmvq))SL4fz|5?`WVPXXFdWnCo^&1+q z$wx4TY6dHI#Qr7&vUN^l}Vgczhd8!gqF-?gq1Bk=wQ%anlz;H;d&hMMVe7?lyn7lYfP&nu~Gae+si((T%IT|mp9Ax@K*OXd3wCA z)@SKk^<(<=u*9&DVW);Y9QH+ccz9`eb@<%y6T`0zUmE^S_^+N!&(WSMJ@BRZO^eNmoe+C$Y;Ekq*fU};j=e5+S?r3~ z$6}w0eJyrN>}Rpx#{Ll(5!W^@H7+ZzD6S-Kbll-_Q{(2uEs8rc?&7%X;+DnTANP3N zhPXH5w#WS%9~K`U-zh#l-WNYOenk9)_+#T|$1jXOGydZEHSy2KzaGCe{;T+(6J$c` zg!T#D68a zaZKXB5~~yECZ3ddUg8yrHz(em_)y}y#7&8BCvHppI`Oxpu%ymO8A5`-ylI~1emGorN#-z8BwkCa<^i#Vr?IyRI*6#RrC$~GV-4*R_ZufI?Y;wos zLCGVMCng`8JUe+o^6AM-lCMp^J^B9R$CF=3elz)_NL62U7gv3O?$9g>5C4ksr9YLvDgB-F9qC`E|DNH=NXSUZ=$TQN zQIatx<6jxo8FMpE%(x)qx{SLr9?jU0@kYk>jPEl3$}Gw(%^aI~MCOdlhRjnk&(FLn zb6Mu<%ypSBWp2s*BJvnFRv&zhTcQr3A{S7hCiwKD6;tQWK1&f1=}JL|Vz;k^=i zb?%kXE5BELuM>Nn+w1aPH}|@)*OR?A_S)QQYp<_*{hl42os{j(?v>p?dqno+?3vjM zvd_-GGW+)IRoPExznc9)_Rj1dviJ0k?%l3;TJN0R{d-sT9^d<@-Zi}&d!N?(=HAPD zuj>6|?-z55a!PUz$+Zabo03 zef|CV_nX$QzTZh)XZ3ri-xK|w@8>U$D2^*`U);5LKyg{|=;GPM7ZhJ!d_(cF;uXak z`sei@*ne36@%@kLU(3>cCW&I!Q|5X2%21E|X9&pHj#sSw3SUKQ1uGa>9 zFi;N67&vC&yn!bUJagc+1MeHSe&AaJw+-Am@Y{iZ4Dt+08sr_+Yf#@orGv%{nmTCC zpwkCkH0b_8YX?0)=+nV^aKFKG2A?_jn!(Qx{(4CFA-O{a3>h|L!jP&V=MA}X$oe6# z4EdgG&(P?h?S_sUdic;|hb|wwa_A#N*A3k`bo0=yL;ou2R5GCC$dcPi?kjns=p*26js>oKfw*zjS8467M-{IC;- zT|4aIVQ&rlaM)+VQ-`My?=!q{_({Xh8h+96tA{TezH0dT;Twm)KKz>zu_HQ-$Q)5P zV&;g35vPo}V8qp2&yIL$#O9GPBioMbG_w21i6hS$dDqCzBR?GZ*{JrTyrVKl<&7FR zYS^erqpC+WjyiMHC8KT_b?2znqt=ajY1F%;c8uCR>d(=gMvos|HG0nI#iP$2ec9-n zMsFJZ#ps{Lh%qr^lE-u#(`U?pF~i1;A9M7WnlX)IP91Z>n5)LzI%dyMvRRg z+hOdev1gCHXzW#EZyI~Y*muTm9lLYvcVmAa`#T)j&M1+Ejofc$a>fpeY{cFnPGcrE zRkTJ{Efzz?5#m@R@l)h!@)9`qt?~gl_P^oTom6j?ullMob*TE6dP1#JFRPDqm~N%x zbQ|V0-F2qUftUBwSL(a<`q&|S3uhsr9KRrkcJ!ut)4b{4TyMU&zqi~w-g~@vvG;uM#ojBuw|bX(@ATg7 zy^oRlVaDnwz3aNR?b@!Zw`*G0^sYHwCv-i!>vd@=&65_#7@d^Xk#V|L+VHev)2e%H z%J^b?{vTn?_oBD=5eXKUp^;4mtV@?RhG(a%HtaKl-i))(?Wa5 zV*+{XrqgX63!Cy7nc6BfF|~85H?=z)CnvQiwKR2f>Jh26sf$uiOT9Sta+}Ac-U#y8 z#@pW8+3U4=^m&VI9_M-+y(fDwvU$ASyPQ1U>wSC|MNop z_4Hr&{&nn+tOxDy_v!W>rfkKIO#z?VeA{Vh+q!Sty(6{B?Y-?USzq?8+wV2>_H(yy z+y48u=xq_(9@t*9_0z2%3$c}X?$&Zblb)?PTYGF(AMgBl+XrVG|NKnL-3I=IG%G~0 zb`41|+kI1QrZswWB=g-v@L_*?te&7J>8Z?rY3uqF1AUr#ro_J|{7uFR3yvX2-kd&nbYhU}^~$WgjZX38mY zjI5NiWQ{yr{UOuER9Piw$~3i67RW+b#7dW$s~*QZ%gnltN4h_OzH*W{MVu$j7Z->n z%>S+v*NYp(jp8P8vm7FB6ZeUg;(qa`I z`9ypwJ{NC@AH+|rKl~zo6~D=$;x8F3V`M98Gf8%m$;{?nU}m?GImRYt8m};ad6ik{ z>&#?c6N|)~%#Yp@r;7I(xweSY#fRby@qsv5yerNWABnTX$Kq_URo=+D)j714bH#RX zq4-Q(B>pWf6<>%;#7=QBYclI)invUCDW6pT7GH_W#V)yCeIc$8yT#SwTXB{6MqDGl zlP@U0xK?~GeiZ9iO}s_?E^ejmEv4_=F7}9J!Y@D9CE^a6<(*QAyI6C$M}~{LWtjY4 zFA(?2NU=gji3enBu}a2?)iPc@BooBLvW<8|wiS=kde_KyVy$>wwii#zj^YW~K}M*5 z$@g@M+@r6QXUYrJsq!iLjQUYNFE{CEIZvg^m~9JeVP1KUo3yqm&o7s zrSb-~MsC-=<;iNWoTKvP4&6sCRypz{)mL7j&XHHE%jDhaBl(c}M82t$<;S|4{I@QZ zU+A&&7k!Zm)7Q(d^+frDUMSzv?d50MCpYU3Dpo(J2dk5rwGGr`^k_L*{!1@a%k&ZI zVSS4{N**hZmQ&>s@)-3rD^yeU8LT~xVLfWTdQFdHEoutuRdwnl*3agsD#p@AR=wuv zT6wxUMxLwY$@A4Bd9AuaUZXCT7pc?a&1#)os$P}1s8{3)^|5?feJQRKU(09JPx3kS zyW9vHdr?dIl8%v|=v?`!&Xe1854lx$mpgTtSk8LtmwKH1Mo*I8>ciz%dc54F50l^N z$?`|NSpKBXQXYM?3fDKND1Ez%(6_2ceVdBbcdK~)uslKK$rDwfY*bz40@XtM7@|Zn91#%DJk&JYIE_4XU%OSMB7L>Rfr1I!|7&u9X+7)8(b=OnI3)OJ1(dmY1kA z+6)zSF2X~J{6u1-qM-K7EvWfRCwjk zvXTj2@lM(J3DBcTj=&rqf7lowtO*AuM$6SHF7I2>6f zLd3B0*P3vt|mWqTV~%yDrvbH;dz z`xqdC%RF;v^UTY=Y1=)cmqo3O8XYw{^4rMAxMCxIk9aTQ%7}9!7Df0X+Ix0zJ>j|3 zQ|CFtb7}a`;hVXx4sQ$}AKpIfk+2E+d$mM)kwj~`2Foz99FA||HEC5Mojtl+<%4pW zyh}bN@0E|pmGV(}hrCnXBkw~}Uo9WTXFM&;;nWwxt1l84!}Bhc%jMm21(NP6`A|rV z*`h5wBWJJ|a-BR|o+F=-x5?X){m+u;$qVEX`M6vsH>h$oj4*BKT@jSlLU{0Ec;|ZY zv^*6Kb*?;LUMSbXrJiSYP#F??M-j~)#&Uh9zDwVuS0GhApjT=0{%BDIuWu)lnJe6@ z@6-3gU7US0C#Q)bf_;_8)nmxuYt@r#Jz*l)`S}R$zE!O;^N*1C3>2N%$0<;4SXV4T zf-hEW)gaYh=cpu=tU54vNl{%?n(D67RVFfiALUc*XQ&~>(MhC+$SW@(b-XAxAuT1U zcB;MVs5+}u)m3#ITeijHa3v-c#LV?F?o1Rl3ne%t+Xc_=4@`0Wp#F)=_G>8lm%bk)Ew8 z)MQnvuGd4=CiRkfUtO)P)WzxuHI%)jvFZ>tUQJMw*j<{Ys?|(Yqh_` zhMJ|0V?S&@vd0p2k-Avjs_s&Et9#S~>Or-N-LVa7Bl}}-A(L!TU#Z>d8}*A0XXX$A z2aDA`b(Zd>`|EOD$xPyCeT+U<&(JgVEM3Rk;Z)`dXXx|v`T7EDfGifH1)N2+6;GddQ75ghv|4)dbS-I4NnNR^H>okyUH{JT*J89(37%} z2@D75&YKytk-a7ECRSm0l@)i{<_WWrmQTV6AB_K4(s;hQL*1tpD*;F9Y5GKcwtmEo zzrcx~*d)1g;x~KO`wnB?mjwbTNwz*ORClWTna5`8qu3KUS)Z%d;x1*dH%s33g>hph z7);qfM%qV6)7kn&b)UL}lpU$g*DAz^8H?8v@45P9b-%ik*pE^d>M+VhQu-xsdY#d? zT(m+)oN4BWE#<_J7*p}}H!>r!DmPX$do`n+Q;P~($+hY;Tok+{!!5f^x9m)L1xh3q z+HhxMo^R`C@245|=_iA96RCJ@{s|PrsAwa+&^T!k8U(BT<;zFd7EN)z|_V z(ma`J&7Ri9DI3$q-1!l%VP?K(=X${ucocdCTJZG(I40US z4#V{|btvZ3Y8-Vi!=&Eo5lmInpxyeB6GYN}c)&Bf={-jHQRpZ*W!u@Uz3#MBq-z_S zhcbm?25f57#2=1%FmX4f3GI$#^e8?*h;&J0{dD-{Kl6vDDUo*>{YUCEY)-;h#W;_C z6>HmrNwv|sFzL{=Ru83aWXV}bJ{{!*IZ@1$bL4GeKJwVx%=O<@@yI8pC54VKrhg?J zL^^D#!Rw54(9eB0vJbi`Rm`1FLbv2+qd#KPRp7qMjBd1I`xc`WGSzB?7!DYkL(}6Z z6C0<~mY0cfR{FbDu0ei!RNvuBfqP4sRxaFI!g3@uSHjB)ksCuKQdfrDk0fSfOh?jd zAt{ctQm2{Aq%wjRxzgue@~tC}?k&kV5~Cw)%B~^uYKT1S%C7s7_>64pNS@7PR-q3S zM;d)A1J;0qY80K-l_FQ24kx`DyRVppj?5%=1^1V-dbbODw8%!wXp-tCCg~%vuL9Te ze6njV#GZxD&1mAfRve;gMQ1%#WU3QIcf!T1Qc-{m+E<+;CaWU}cMg~&hRP>IsyYjL zx|qy+O2yaypH-ZtC&R%f8+YO|{wJF-@_6icWbs!CH%%O>+KY6ZDf%;#`0PErTAhNw zE8+D=<9;OWwIYpo^;1)M)(<&!5$T*N`pHT$86?spGC`u8N4R;+_Gi;`c9L%Zt;CmN zpgao>i5;K=_W?Wb%-Cu{(66cxIUrYV5Cx!8zAh$EP80OCNCPX;Gny<0lfLm`5n?=P z@=+bRwmwXq`~!3u&rN-`gsHy(Og-)orj7%kuBq>K)I$;&CU*H>1Mh&(z&2YyyO3*l z`TuR(LpM=r+Joxm->MFyybW#IMF6IK><4-neoWg5z_g)InD!KCQ>I<*2e!?b_7;F? zcLA8TYSOlmIx#TqaX-+j@MGF*OU%G+J#gExY0Liz)5Zgs?thJT9Z7jc08^fCf{(!$ zz%6J0SM-I=ZeJKC(@mf7Z!?f0;hEAK3mE>c{lK0M2sKD7T1GFpBycO1~T`mx(O-h{#g?sZ${Tq}}?2SFPoF z2Qfem^r!> zMReDP(H_vEbFm?Z^bVg1eXt5sK zfEkIr94rGDfnsn4W5YJ=66{@!6_+!P8Pu|eAaMJcaj2fSPJw%D7K7ze;7*Zc`};qP z2mdryG(B5H+c)Dpy0CWKI8RIpdqL!et-&2y-6vA)*kNchhM4C|d44(f`x{4EJ~we0 zx4_tPJoRj7XN;L7FC>0+an%Gd%+Ln3@7J(X4WM7g?&7+CW^9M19R=x*?(?r)w?3}j zLv^R!7@lQp19(?hJs3us?3e`~OK@nz&%(9?Qx1W#3ma+Cx!=zi)-=YMc5tA6_vJ4z z28P;!vG6>~EVC-yxUEi_>i!MCx?c4L6n+%c`>rdUA8}1UQgLfqHj!+E070P&<+n_ zJUoQ9=)V7e?VZGPj)-)5`^M04mXE-*L*4dAo4(rQ$K>TPksY`<{3k#gTP_wJ%adMj z;Xau$v{v}SE~TFK$E%E7wglM?Imz1d?6{Xp_`&Ahx`o7HWEpiDV>5CMb3-To`-In) z`=5-#Zw6teImR+JB%!%goSrY`T$l?Vu97G9a@tG6|Q@A~8E{F<_g#TUoA!yOHw( zU@SBI{dE9;N5*wvK;DyIrg%;!k@;b|~N@natxdk-G;oj+t_( zlUsz94FYMh`B@cOPQa7{ZBkfy{CH804AdK#GWHozw(*p0JpFc{ zJTj!7KWE+RbNa&ZVz@lszm0z3Wes~&lk7B!_R~U^B94Am78rxlQfTd8rEkMrLEY#kev+XC{Nc!Iu#96_D= ztUcDwg-jg}vGRr6X03l@4*FGpBYPl^8CkLn9B%JJWxIXR7a=3=3jx23JH%z@XVl9; z10ypw;d0w=)9J54n6T#lKyBnr=6u-(X8z~S0iFAkxHqVUS2!rfE)Mk*2uoSgK&&bJ zHwvFaH8=Tp6!T_@nw2pB>@h18nW86cq?gF%zd$+YrRB1l;S>3yKoqh9(3f@>Tsd#K zOE8)mG`rqr&wD(Y@)PK>Xw1;3|HZ1xk#-NE<$iD{MvTE?s5qLP1+#bDhCPOztW8I= z_V9>!R6Haew)!jytQ4lu6Ygat=ys8Y-pf;B9V>aO#A-BN&ZP}?W7nrO+AuGo!Lky~ znlQ9Mrb!Q)C)3e#i9lZ@QhXt!WHfp))ncQJVXvu`Y>nnioQxO0$^_X4y^z@Vd@^nTFysX^msj;NJIvM-}x zKd}_;pFOgerOf{5$qbO@zg2TZgB-}Z*C07q4v|BVyMIF$sZ5p&^Dl!1vO+9Gw`iCg zE=S0ba+DlRulz)gmE++2i{znb5-moT=wxvcIs%8W)_ALUP)?MSHGs3gc=Q)eM8!0xRbM&M5nVr=+vQE~^xr{)u==pq$){<9r5na(Qxe5)S z681~0#GULvUyer6wPFo=PInlMC)vPyMj1P*@1axlKKrU$&^!7_Y(*;im{|z>p=g~n z%K37ETqqaG#qtFH^>C6rnKiakSsOc@ebzJCSvC8t=d!|1P5f`-7P*w2U$Zy6jQ!r_?D*cre(pW&0k2@^cP0C} z53n!1iXGsGKg#~_8rHQQXGix*c4pVf_3~-?jC>YN$LHk+`GVXiUzD5VOY&v; zihNbRCSR9t$T#I%a1HmOJGa z>{EXwcgfxIYx#}*R(>bHmp{lK3d)TQ9q?Y3##xXD2qD zz1U24W3yNh&PFdahaKHqc4mEOs1~q4Tf`1+KX!rpD`vjz1P@k2)KGSYOIgD!XYaF; zwMO9y>`Fs0-aa%1hLx>N0h?x9Q@5|~H^(rgjud6rIo8oS?hVEf6_ignKYvb>+H@t;i-4E4A>SMK4ZDSpNhx$Z) zsy<^q{@-e+`a*rFz7p@U@4K6w-*4Fa{SNJ*AJmWPC;soq{}0t~>UZ^r`cwU-_9#EY zykz%Gv&ZG^xkjRY6s=>}du`3`Yn+Zp)3%Lns}psSZl{xVd)+~IL|?44PSL5l3;!4D zs?&5g-Cg%!zbk_sEoa9zTlYpcw~x+62ieCicL7>WMY=Eg$i?jD4$uSjAUzoUsG+(< zm+CV1cPrT89j1rt5v>1@(xcI88>`3ZL-e8iAL%gkMkk^E@r9 z{NL$pcD&DZ_mVF}|MVg>P%l9T^)j?juRss=Dl}2A(bwwh^!54%G_7vZH|tx_O}$m$ zrf=8Fnlvl!X2twov@7mIzv6y0EFMJ1VzquqKg^EcqwJ`!Vc+j@cBY?XCw3ir2v4J} z@GLqC&+85P1-((fs5j}C^vn7c{i=RVzpmd18#{6IXjL{oqGV3hw1)aRPs!AV>IKyi zCG|7w>#AqRlufH?m^OdTjN0l&(Ph)?8>^;GtFCMGluxTNp34bR)#$0PcM%nC6csj# z=!z!q5fyH1!$M*k*7P`Lc+fd)_|&Qf&xppF+UeC1Bb*2$MmWJeBW%PmBZJ;OqpPOP zZ>;u=c2Y3Et|qS{zhBsB;`WSn9*uP#jdS8^J#NLg)uBe--MvROYG15MXsB+&?W#17|<;FKH7)SK9rof)*Hj$ocCpXn@*lH(i zwG%eFy2*dc%#dhi2AyXGox^6C4A(dru5luasBvqh#zq`-T+n-~*)toetLtj3>ZaFB z^VB+pTN_fi`Nd(iyvS4MJgT#gV(O~Q|MeT{=gz8*sCQn{x<0fZJ@xig9`w~rr8k7c zSXl0vXI*3F1=A5;TVFSGo~P0J3u`oanD69azFR2sZG_?TZKcf*eOJVMw~!YGnqGNwlB|@>)3_)u3ZpC|EjLxV1QYz8fQ^l z4m~esM$Li%-D)0PvCe&9e0Lm)uh4Np7jny?5S}+t*1!Zr@7d z?#nGMh$yLON?~3_NriFGt0*mUZJSc=Z9LcoHom;Fa_4!8y(e6md+&xT>F3^;SpU9U zH=dG!?WD_>>x(Wi#ch+|Da|q3fli2m{8qNi3i6vA^D1)tdCHq^bMwjytRHOa7~>2? z0osg4O`Zu`W;`1^)Um>KtY~s1+Cn$l!Y0SOiaa-mrEUq8xj8L!b5!P*P??*4Cm)oU zTN0&#l5oT21?+;zipE(XFDfnb3~Or3xp_V}-eUK?PTR?=@Y(pV3p^uC=t9N^8%ry9 zoUk`BBW%f94>8V&>3B9}n^#upX0*~e#*YZL=%6oOZa?b_+d9UMm|j!eP(80^UXveE z;g+M%mSbVuh^CGZ;;F2}DeSTm>lia)W<%A2>QE2%O?ee%&YRq(V?*Woa-C4ETs~lf zwQ`w(8=vjYmi9Ph5o5BMTT+mlpPLsSLK{B?@gc0kI@tH+<=cv(aQeE1(>L^Csqq9` z33zgAH{Y#|0;gT)IawtVn`pPw6cjpv3*1gq5QxN$w7^D|n^$f-X zYpB9aM@3Qi#9)b4xT&agQ&ABpLHBJHZmt7eyRZAaZ$HoBwveI@4|E;R;kNBNHPO$_ zePw~?Um?zwZlUG7nXPnRU+nW#nI@SRQ`OYDp)K>W?oO;FwsTWWwsX5ps?;`WMkU** z1CDu4zbwrQ30`W)Uwqo}H{jEbj5ykn(K^z`ZQnPx4IW?Bd=znmmbgJnf$5l{jU}b7qh%ar26U;H%?ZMk)=G9EEZrk+K-dZoV75H*( z{%Pq>{$r~GwG{d)w~R{MGODV!(Zy6XjbVY*yX96AEH`3ynOUym*vb{*Z2YZU0nXmU z2Bn@RX6`F3i>@+E()w^n`|>#JYDp)h@H><7n5w3MFfVp$)wJ2Rn+7vnk?)NA*d|;- zB(hM`Q(tbWeQIp`Gl*_oiux=7FJGKFqb_xAQQ!<-_8Ths7-)=7&7Yw-22JipW;YA1WftIwC`3R<~kmZRh&L+~dDHy>q9aUxt;kCdGqNOJRi&Ono&>vKK( zLQ_Y(aQPA*T4vff1Tt;umLUU~HV>O++BgItc5GHg0>xAVGOho$D{_O(7+ zAtX$#uB~4f($q_$su~*V7f!EVXxS8_icKQ&mn(6WT9yDavn7k|_Pa7W#B=YIJb5th zWT>(=f?XPIW#=68Hlw#5^CSokTS3ZOV$gcX4KDbaHBDliN@GYG={R#7{Wwj z?O;*b) zNU821?z4lqFUpSHrt!r#QMSB-w+`oMdfJ?G(9L~qX3no+u$WUH901!kIR%G6>y5ue z&BU)ekXmonDd^2rq(a0HmPmX?9QgRxsy$1ax-5oQ=Vtp zF)XjJsfFa`=ao9cTV82yZjmE;<>y)+%TQ2iJ;uyh%#7S=qfTn`a?Q|2OwOq6REHzF zGN`$|&sP~$lVkoi#-I0$5BjN_xiaempU%+Z%Pn$*_M#HrY5O(;tuu<|IW{u^X9UX2 zcLlHfzRsv&$~M-HA5Ep~JeXSFILmopsHPnI`c~K(hq0|=SZz&1m6I)JzUIrzb415H zC!I+CHl4Zo`A*vMbDcRTb}-u9Qa51*PGH!9XHHEW%M?!BCC;#$>&%98^PGu5UPaRc zp>I@OO`Y3AEk)O|w(VM$G9AehbS=jYb}d_^bS5hB8&lP3MD#Po8 z^0gy{=T%e$Vzs_`i#z03xXmHgy?2&R@+u1RBH?OwAo3WZc80w-WffuWDH!YC=(vXr zWln@Jhj{+LIHQ_6GR1CX>-xRsHg0MPoQ~o1mB-GlYG7e2(4n2W?PtAF_~mi-am&u_ z2>U#*XgjyMp{9PiSwdw#J>52+b}igYm*JnWo%Zc)gLvjv!(sxh)-583>#^+8FX8z4 zhU3)NHL(_xPWrvmr)c2jol zZl^biQ2F_Vk&VYRT9Lr1X{St>{JJAa2$%l zafx8w@}ume!*bImswwfjtunH4VZBpohM?4pWlPNvrqqm0saY!+vmJXFgIqzuku14) ziY(7r$Kc+Ma@elGSm8FAioW6VgJVpEJ91UJ4W_~^lnPrIj6H7e4oGx;OCxMwm_OIy zB=hG^ch^tc(beaSu839rJPYkyENWq3{^(g~B?nUtFs)+GVl%Yl$1HA|vgOBzEF#;7 zv5NzN?XA-{`?*v3es)IYHt|Y#LS1Pm)cKyp_FXZK6%x48olaNU>9h^Zfb334^R2iP zh|!&6SK2wY>sXv0W&V_HD=xN)$}v=gy{(X=(<|Njz=j>%Z(3<44BoI!w2 z2S5Ht@BFt$2|c^IfwMB_R5i>N9p}uRGaFqhR8_1#i}`<-q4{S}qz4UzNdDsx&%ODl zo0RR*U65!bv_ik27F~^F(L9;J`-Y<-G7t@xz<+$D_)t&A=VtV0qHqLjD;uGs<8@hs=cdI92zQ8|&C8xHI;Xk~Avta|L!kUv{ z*>^;HMR@)MKLfP4JfFJu$Jp<_vl{(e)RWxm!b9NV4L282{1PsGw{=|Hc=bVi*NerCjumK zKGH-#z|QP4eY3e|ANTSm_a*wACi*meLKEG{j%}TuW$w`$Zu+tJ-1IK?q=Tm$jnw7% z9Ngs566|>Uw9#mFe>%O1@|yJPj^&S=emsc`akpjQK2uHZzJPyx^Dg%G zX-z14ee0B&rN3042K=KrK+AG|>P>S(iP~W9)Ss@Sq1U4??EcVUSlLA16`=5QTL^ul zQ*LP13v?%FjRvG=S%{yr&`A^M7xGiI(ZEmD2J2VN2)N?sSan3xos{=OOEj}Sr`0X8 z<^p4KQW2&?ixt|Gy+qf^_<7#Y;(5*;l4u+npBaXh+bq4((jM#QFB?M@{{@n=kA1q^ zxGNho8d@f7xb^uS|HU@{ST=77H}2vs`?SQmTxsc5mZojvr_h?Ct@}Jn=UJLw$kQUn zG%o0QnzwvlUAkDaqjfPoMaoV#wK>*&(3+PRceG|qjz(KE!}?6O^iWIZTY8A4i!6PV zr601i(X5nmjHSm~`aWys7*ou*?zBJr++b)D{YhC&~rgith1Dq3NA{ohzCSd3(GJz9hI-)ITv;e!H zHP#g^!0u=*1~nD~+KL5MQ}KB55?WvG|0~UZSos%CCfPaxG?LRg>{)=`ZtW@9lW?bx zqXXyABeCh{rmdlsC(+pxlKzdBpO9X_|CP}de>sk8JC*8JH%H79IIaievaNjSs1 zjLVzW#k@s|Ro3M}>oU}u*IJirEq#-v@3r(?>wm6wnQL8MvGj|Ue$hVNVO@4u7biWG zA8)zInxELGwzr9wEd7G@`GS2q+q%rOE}7Dtq3&pYIj5*Qx?M(->v+}R>To&QTSjZj z=tjM5wV|v=6WT~dW2lz%s~XVrFY1|H=P(=)Ix&7h)^__t@K@pj8@Hl{;!+e{#Q4q{DQy0UBC`L2~r1Jy1|g4lsSDdG{1g& zpNZMjw|^B_3LbEL_&+fr{crO>g#-HeO%M1_e;u5F{@?!72>vdd$&3HT(5L<#=Fb0T zpuM^IY+fTjgoZc}+W-53_-f{-eY3m&mp6O0?Z0`sIkoJdf6ZI5>A&V@TAH=Z7~kU8 zvex~3T6j31+dzGWdj98La|95}LIP8Dd@#Fu9{G9==2KVqUJAVFG zt+}aXD{w;WZTeU4?RH=;wBa7c=YQIQ{;3c6KXjh@zchT<{>=J~S@CgxA!Y4f=DO|6 z>P?t;_VvJV^S6-Z@a@Vr{@u+(`G09~-z0tcjm&z`KYxo}%bQ&ZZC~R>X!H)34s|&= zIxrd>T&RQdZARRK`|V3=2(;lqolr&xC0p!^7X(s8pZcbGNt^OF{MSu;isLi1cKw_F z_hn}|v61Wpts#)!1GWDth4dynQ^97A*?i7o<7X~pe*X9TpF8s&|I5bb!TtjE77XXV z&cDt7ATi(Ne*n`^TbRRq)g{rU&}(cYWUN+FzP675DD~z8v@FrvI71z5jXt8v#1hwp_`b6E<&U#O;nSq5d7( zjClvw!uJse5@X;E!8iLGTKIHE)9+fi9^|dR*{Sr+0|(~K#x)-c^|J(QM9ozrz&CT1g^XBF)cV9mCkwVjp z8ONM?ZZL+Bd2hN26>LNPZF|QO;Ntsu^0!Wb@qe$j-E5_bH-GlGQ5?{N0QWy2&;OyP z1FdKO7ycd1=MyHR|1Y@JcKhmfP67fWo4NBpeee=t%khC&_F5Zp-oz7!i{%9FL+xO# zH~G{4pXt57I%%>k=Wk;s%t1-*p>J+U2V16j(z4C8^zGaST23&m|129iFr$mGbNLX7 z+yBzOWBUKw)$jo)&j&un{#}|~sVL-esKgfHY)La44oDjCB}0CJ(EzDoJ@SCP(VK%dO$p4*7pyW+@0(tQN z=F|~(vo+knb9T1vFW6r8xn}tvBs$Rdkn}eMQf8uYcgB8qCBQxY58wt*WO#aHvBp8HcBUCPI92{{{O=tWo}xQ>FIVgwP{WDf0h`xk2Tc`lEa?= z{aa0ToZ1Pg$FHc{gOEmA)~T~z9H{gES%Li@M;sg#{*NPW5nXV6Fe@DFS-3J`z;5CF ze{k!3RnfL>v%mjq$o%Dh@HP`=%QyVLoYC6%+dk}M&XjY2iv@H_TCN8-AMNnJ<)3Qj zVET%a2DEFAW}U7ZcRe@}&dZ5#d7KcJ&uMVk_B6OYoN8E#TRB&M&g`GaH$^6MRd9}5 z72lAV#o25lI2G(7&N#bNJjp3%>o~LP2Cnyf& zu38sPNaM?8oHjN`-pILaH*?Zf2Yb?17AI}J&3S6?sw_E<^QZdD+c{}!h1z2hCqG>)U*Y7ZrSettl^wa6v!3pfZ<}xJ$agsB=>gu#`A+gZbH0<@V$OGxAEH0G zUVdy&a*|v5w#{a_os*lk$xqB_P4X*FYx+#?=DenV%dgFeP4XLaK9l^8lbL>(KX59O zmOpYHQ#fA{jMS0xcXJ{WUlvT@TXlbN@=^~K!Rbo9RRZTL`BWQowvuYcIZ9=!y*V>U zb>hUN$tnds)hVhwrz9P%dYBWER5~Xl%}|+qO|C}uM6L zQ;|+lxtxb|mdZ0<0a8BBL^@C9a{|(Js({muZs$u*cj&v+Ahc=kQ6-#ov_h3~*3n8; z#%V_nsB+FbTBRyD@o0^zH0KXzqK&Q=`hBhW zQbZdr^Sy;c%ywL@a7*TnkCGF*16Qu-$kkqS;>tt+uQS@-DO?@U1573EE?iNx%rvyo zx^YFL6=*b`dvHaGbj~!4u{wfL_FThA+HE#Zdvir{!lC&dNgu9A-jhp;^0=Zo@z961 zUOrc>DB$W$doQ&5<3+glM0g(*dUUn2Id}Xwgh~g~8&V(}O zDQer>!)3q<6Di7Mn zx%85A`tqR*6kjmmyuL!{BF?8rCl{^UaL(@Q4?U1m>)UX8-yrD0oJJhZDSmvhO)vE;(WEe9mj-n`I*1jJBMa%4mzrWt>keIce`oz8lAw zi^-Ua3u7){I{h|6;B$yNRL=1Yt+eIWJ^$zGy)F-$z zUPFJbKF6I=n|K(tF&VWn8MSfuYyJ(vS$axzGap;yq;W=YQDjDNTo}Q5$_Or`8No5r z`6qx^^EEcnlQZ*rioSgBGaDC1cAhe_V{%>|r{kCC62g}1QW3*Rd1cUJ^;qa}dK@&T z&|cjzC-{g5V3rLIb3W6VR*mYUqdbL(mU%;(3ZWCr`9BC*_GW!#_kH z_{THQoRY^^4;5pG;UY#iJe<+faFOEb z;|t+5k)$yb9?+93#`2peQqhO^1i4EW5#%cwmamMk9HpJ*D7`E%>2G-nUs>QPAiaYK zV>n7b%TfATj*@3NN+Hr$DX|;*E7x+AM9WcnSdP-ea+DM}%3R9uc&>2ESK5n(oCYh! z37p&-Zn;ZG&TnO$-HXR`;w09qDZ6Vpg*5_BV>Hxn=L+YH*5#C5kn41|Tt`{1)4dtj zS%=IQA=Yz7YbQ9+ChG7_u58ZHeT!1s1_z3=94In`194Vw69?)I2ik?t-CWu5qOYM1 zH!6c089wBP_awQz$H|9eWTBsw^bpRJ zeF~R#avd(~<&xM@pWT&*Nu<+<>1K{m{i#%ufU-!NEpSJwZWBH%9 z{Lf?gpSJwZWBH%9{Lf?gpSJwZWBH%9{Lf?gpSJwZWBH%9{Lf?gpSJwZWBH%9{Lf?g zpSJwZWBH%9{Lf?gpSJwZWBH%9oKIWM=dqkmTh8aPoKIWMmuNYkww%vnIiFUB^J&ZN z5-qojvD_{OZg(pD#&ElymfPi7Za36&yPlTMrCUD7mqYo7ppP#x-vs}-nJkP15 zrUT&r*$DGI^5PB{B7#)R$8q zNnMtDM(U!}<5H*CYjA2oY7SQcmvPBV?U=GTWmC%fl(p{lP|8CoE8F)=d^4^#ZfeLi zInG=i<0hx9G#4pocExTcHI4SFgKB;qO)5!e^!3qmqbEgYlUkp1MSXA6JlPHDgb&1$ zN-oHUbCDa9pS>@WKXWZIS5zxo79+`T%gf2XYes$_In*tYPfSBYE|X2EcwS9?xywjH(Gsvt`KIRBHev2e8=1`gzDk<%_G}DZ&E9Y7!l{QqT{JeU zk$u#P=b7N;*4HvxVW6G@wbinIg7;HQ-NjACq;#=cmiLsDwR|!AiGaK3Hrt|eBER?i z%5@{x)uETEJEzSCYSpP@8_LwFdA`x?Xy!Ky+Q zGF(^Wwmk05w+}L{Y?ftZFf*U$`xnStmG~IW<>Sj|6Y*!}@PnnO2=>u64{zZf5vu?BW5lFygS){Rv2sFi0PV?E3x*03HHDPFTO%E<#fY;WwqhF{3DM!r<`fHt(;}}EZ?4GhAEFTyj9LNTvgT@ek$h}PAcon z98%UB9xCS=?kSHqd{Z_Ujw$Ea6}U#b0yp2Tz%Aee_VeUIbLP4{jeiVZAcazKPO4}WVugT?bv@m%$=bp#Nd+i$AN@i%CTA|IcfZ4`8H>ZpDW)nyh*-mc$3^>=1cNpGgFdV%^XQ?GqWSP-OP*R4l^T?pTLhE zm!BF=BzKwJo5=zmK{X z+_&dTwR+E&TJ71RBSE@9U1x(M{rztl8$f;9&EV>fme^FThj3kCkKWrTmX zj0902k^5=b)BU^E4d6y_6Sx`N0+#xB>jhvTSPaerxB9=E8V6&RRDnl}>3&}Pw+2rgG z@>4;6BFIao>`A(dMHqVw$!I@zK%=4~t)vs$lAZk@h!l2DXYs5C90z8DS}+IHfqF0( z91rd#{0i_W;U6RH8n6~TP8?5wC;i(b;UwWC;UwYsKGChq*+rp>ltCJeu~y-Sy^vIZJO_43)Zp)Empw)%&NIytyA@4d6y_6Sx`N0+xbX!ENAnunfOuZGqpAcEfbVg$I>8AKI8MW!4k!yrS+Meuz`8?{Jd@Rkv#`$wlmlzuVe&le z^RX|$z7Tr}_C?@ga0$2+Tm~pFzRH;-uLM^C%1u&ktXm|pYLUd6MUtf4kQNeHJ5P|e zaK9AXN}RU=yM~T^2e=d51?~ZSb4gNel5&%j8EfZZtel6jQV}L8EBPpR3_M9(lnv_= zNpd}S8axA@1#K;}N z$emVz4;7CUN9k`({OzSnRl_p6{TfsKKGu~uk6~rnSSu~o4 zPApnn#cuh*gyvi)LYq*^_V26wFZ1OokC9P8YqX!*U?+lhq%YaOLbOL?ql5o3(GmT+ z&i>^h6}>Vq5W@LU;#K2 zoCVGXm+}7Vv2Or3f}6n2;1;kH+zM_3w}U%L-(BEta1Xebw5|a6k=~Wye((Tz5Uc{L z!9(C-@CbO6{5(c})_}F(8S?ckcn&-dHh>qvM(`ro1YQC!lfPHMtKc>8I(P%T3El#m z!Q0>+@Gf`{ybrd355R}uBk(cU3cjJNe!~74`~r;r)^Ff<@CW!4`~~(PSt-9?Y7hp( zL418G>L>J*Z6;vYr*5-3Ggz{UIDLy*TC!G4e%y-3v32&gLlDu;C-+K zd;mTKAAyg-Rfbv8H$oD0qamx0T{72sNMgMS0k{05}?4M_7Fkmffa&2La^c=iNX zha^v#Xv#!WCOQ#NCb}J24)r;m|1MlOZ>a^Mc`s^3Ahwo1}+CzfGht$ z-rfYTt?J4f*L}~H97WzO%XYlWmb}QjEy=Ph%ljI~@$STN;=~Er7l$}B3uOtAP=*Oh z!|C{d%T**3j zJ9j(xoO91T7vbv&hY;>UxEtXfgnJS0L%1K|ThpIHI{6gR$)}J`-iLJZKBSZPA)UN0 ze-H7vJ1>79-;dz?2l##z-~Wp5$MF4c`2Hcje}wPHK?8pSF8&-S?61K8$>9BDP|`Cq zC@E1<3r^0g2*H$eE%L2HSdXv)VI#sOgv|(B5Vj(0L%0e2;cX}%=Yim}WKgs-plD}6 z(awOPodHEV1B!MA6zvQs+8I!^GoWZ^{?{qm?_qE8F52)O!XF@;y^nAj;g1N|V{od} z1FcIBDBtAYP5CsiXj~VsCd^p>Va`W?dC2>-1K2WJuv&LmuV55M2X8TkK;)nA8tIuR~I z1@K~K2zUW4f*v6p+L#!8$05YS@-7wpQ#xi{20|tR+0

oAiw~d>0}V16G1i3LdEp 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 NUQyaQ5&?U|ioJ^k!LBF@ z7Elxm*sz0OrPwR>F8lw^+`HK&ps2s+`MmGFpEGmrv^({jGv%Huq!1zz!z0A-ipr`* zvo0wSLS+jfHxA!_{KO+8%WfCq&@Y5I;^g5I4=NkgC32<^sWXI#e{KB4KK`PJqc#!t zSyDNA;(?_H&cCGYU7nBTId96W>e=HjDi|+B!ZsnI&Y504XEyGM_$OgUO|P3jE&i!A zo>$fhas4YZYO1GpeEs`&_+N~F$qXE#j`V!Q^B|tP&zRLT@AU)M4HhDc=LBC}!<6bi z(UE78)EFTmFP&9AZ?=9@JVp4rKlc?!F%jUy z4)CmL6~@FSE#jNFN!IKv)ZFPanrvc9Xxx=lro8G=o4WB(LY#2*((jH+81#eC`V-^+ z_H`N8IQ9io0_%5u?pfm*!L!$dwUdlF*Hc9Y5iJfC`->4`2zQaia|shI zr^u;lk-AP@uWnE`s>Qk)SC5c#4e?XSuT<}W#arxY*Y7mfzRtBzCq!>znR<&6?J$#x zD@8|cDLRV`%Nw2f)rpvk)MBC3 zL+T+?ctSmi%ggE&%uQ+&=4Q18bGzD(??>t*%pcXyv}z~a33HSljajE>VK!<~)=jzz zvzdBR`gDB;_$~St%3|tY2>Q8*15cOJ$n97)P8~u{k5rS@6jg8Xrkd4p6YrU}^+ba|t?qGgYFb_H;QsNY`M+FqsS-qVbhNe!(+uTTEKCS3&Y#U3~{vU9#2d5bZ~}5oJecnSj?4Q?A>w2B$)|08zX}s6eXD#om7c(&% zshcKS?mSA`Kx3P-1{8y zjQCEb$lkJ4&XX6(MRJXNQ+}c%RA*JCW~wFXHQibF*5h=wK2=|@SLzL(L{F9H1kZh* z4x7e82l-Mq@ zy<$sa{}Wpq+Z?+f_NLg!;yiJq>*a+q}?bbDJG) zzHIYzypE5L?--vMKRW)9_$l%A@$=&s#9ti0D1K@Dz44F4uaAE<{+;-bJ z>BgixlO9M~oAg4`8%ZA|?M(VLxm|Kva!zvJetG*{w%=nNQ#wxT zcwWahItDt8>vTh>^_{-xoYlFw^Z98pY5S#Rr}a&%N;^2MCao#$jI>MBZcST}wju53 z^w{(+>HhSw>C@9sOTRpQdHVJ)gSw3Fa#fe7e9D*Z8{ix7tMi@WJKJ}W?<(JozT15F z`X2HzuBqc0IT2rCk?weYor93~xrejI@m0jJ_FV z83$xc%9xpPe8#yMS7+Roaeu~R8P8|Dk+Gv&TDP2T#oa2qP3<F&dJIt$*Ig~$~iS>Vb0Y#x96(W6zwP#XU=Vj_r9^ z&zhdc_B^TQIXy4$xwPl~Js<1&e9t#}?&$ed&tH3ad$sM=xmR|tsl8_RI@Z;_8#7QLhmDc*YIKiqW9x@xp{r_s`3`*y_ENM zAAg?(eOC0@-sg|}{ql?R56GXDKR=iib4K>ic?FXn%m|3^VoLHB}T1rrL6 zDmb>_w1SldZxwt|u*)Cg@8Hky=lKWttNauENBXbvukyd?-(Hwl*sZXnu&i);;RS^& z3ZE$4P?S*AqiA5!0Y!%u%_};y=(3_EMfVl0Eqb}=y`oQxekhj3qlzaKA5r{Z@ngm7 zi(f9@Qv81LwBkD#pjW}t_?_2acXHx^eW$qt6?C z<>)1&?-{*%^!m}Sj(%tK=VM~Vl#bbd%%m|h#x#vNb2WWPdt=C5#UdTspB z^yu`2^py0p^sebW(tD-%NgtR#GJRrtZF)oc3F!;cFG{~G{i^gE(tq*A`VxJ~zK+o4 z3}2=%-&Y8IuJBFp9qXI#JJ)xi?{eQwzMG-Zcleh1?)N?5TkTupd%SD=t{uAix@L6E zgiasW^~kQ*WGLu!0u(wqqhm&TMz4$!8AoT-^msn&)9r=7d6>xy%IHIu8h}i61Tx_X zVzDjbVtKE8T7D!ylfSB-D!-+StJGs^z1pIM_EN^Sl(C!6v}G)ADPvT6TzXP^=X76s z_w=6WdFdtTW$9zm4^OX4pO=1W`i1G2+A=QoMN-CgzEodlpU;-j@9S^NINR6cJIQx} zE#p$(t(5UD-+h#EmG9A3Wt`ach^`k?#t6#TmNM?wQpTy2@ssWT-$Wn~_<>R~>j^vs ztN|C|$iVB?4ma)%4BGXQ_$}NiFqs&ujY}Xsuuh0Sp7`UgKaT#MRg-;PA8g-Y>Q?M{ zJ{WSFe>**GTlZ~W?nrNO+p_%y8_K?Q`&|a#e)jfl+kf2_vn_Jl^6j--KiK-75L=ns zZml3T`PrJcwZ~TV-Y4&EdwYQi&n1Cv04q7t3&h(sB*6^#HMNo6=+#loarY;Ly^t&q z)CcRy%z5eS`eXz8RO98C7Q;oKr5EZ8^~L&9TJ}o4Sl^=`)o;2+Ovce zp4&b5c<%Q+Xj~i<`+m<#&tsl9tlLIod*1N8h543;HKEp*X9GTFt;mItzvnfNjm@m~ zFfms4LTdISg^yvTF%aEwc>BTk7Z%2!AIb2MY2a5`3j+Jtx z+9eK``7%%D%06P0>>-bkS+c8IFGuTonJp*Dv9e0ekhSs<^_$ETlV!D>E;H1#vPc%o z5>~p*jP@AjP-bp+EYkh)jFl6`$>JPwt~gIDWR`f1xK=C@*NN-J4RWYhB9@7J#J%D^ z@vwM|c6pN3x2MHAv0gmK+RFy9QEU=#h%L~X_r(X|Bk`*EPW&K#6hDcd#V>N0_(R6X zSQ$raCd*DTg*o3d%m$xjj`2J*jTf1}yu@7f6=pIoi+SQT=0~rKQ^cE4uD8T#;vI3i zcw3w#Hj6XFyW&jNG8Txf@;cV6&Z4iJEw+pE#fRbo@v*pAd@3#ypNI=thgmDr#3kZ0 zxkh~~J{OmYFXUSFsklshDXtV>iz~!Vah3Q+KBEHSYVoc3UOdif;*H{0aT9%SF=J<` z*d=Zj0r`1m9Ohm`Jwj9 zje0*7ukX`C)JdvA4bo%v7%-Lp`bPO5d9*xIPL_wuqtp|uN=??Mv)(k8 zHK=CwvL40y(eY#?naxtw(9$MWx@PG*d73&(o~`D{bJaX~wYp4Rr7o2hs8i() z>T$VPy(Di`FUq^sd-4hOnYdhhC7)71$fwn>@>v#+p3_pkpkw9xI$wUE3*=OBJ?5^t(U4ueUpmP zOH_=$LnZ15^h_ z+42f?j=WY~EiY83$&1w)@)C8Xyi_fa7pc?b{c4B2S8bDaca|^ecJgJNBwx|V z@>ShIzNFjBH+8yvTl?fYx~qIwXUMm77x}xsRQ{nalL38&lKLv8^wmo1Yn0GesyMw& z#p=6M8-1@z&@0qZJyajBHt1*6O>psQ^|~0xD$)ej1P%}rWjEPfOi{nS7(Oi*-LaQ$MA1_4)cVwL;ycYjw4{2wGaC`>F@kH|h^PNX=K*s894@wN4+P zzE!{I{nh9CI$fboR$nrAk4F-it&de#s1M`>IYb>H4^TUGl}r~;s6}S=mDS)IEd7p= z=c#Q%RaA{RP>!mrZmJjYGDbv~9$x8_!^%q!^ocjhCmaYqy7X|&vE#@1#FBAiDtw}T z!uYYcu)$!=38Q`Ra=4yIfr^@yQ4cHMUJ)r`Sp{sv>T&|R3~gE6Y>(8F%xZNC>&N@C zdc3zdG5;b?^uLG`^*7>lu;tM$<@xKk8wM?(8Z=NMn*=MPf?W`GRO|LZto{i$y1}yP?L*vwX z@x^R|e>8{m#kM)M_0z;#bLQk1h>e(j@e*dCcowrrJc(H>9-Y%Xd5(B+PV?+JVtJE^ zd*|^rjSWy&)2bQPG;)NbEsdFA&1`FCSu@j`J*?T?n(QVKvYR#2Fct0I$v$n5eI# z9_EgZ{55h*6*MMk;xw2P4Yf@v%FnCEbo#J%6sHP@)miUyi+biQePn-AY>vv z%;D7M!>cb47sB%{mbc0~L?Pfjmn-DwoKm$o^-_bL4q) zp?pL>F4wCHHJmu@8C{Xo)?9e-e0b+t@q|1D4t2IXSDr6d!==_SJE#gvy`zX>-{Mw% zo4#G&sqaRrTCVTc=KV3E1YX}krZ88yOE1&+!d+H`#Y_^B?4>-S9!3UVt=6cu_(ihY z^Df+dt6F8|A7P;fiB9a@6sdN~r%I9F`>Xb9uo|HARI*A@`!RP(Q(aVs>aH?XHZp!6 zZ-b_9x6-as617mikTq{34430 zh}KW)hx97_h+d-~*H7rD^?LlHML+$Zeps(YmV8XFg}$z%@0i^z1CwaaBDYUN{v<{)JR>ZOY}@tsSZ_T>RLTaJ+EF+Z>lTR<+{H*Tn%GCX`I?$O;87_ zgV|AIiahr@Eiidy&!%;-9BYZ%(4E`@_Em zia}y9yQf2G{ZjIKhq{lv^yIzMdE2@Au~u(*48L>rDU{_7LL8+o(B6OahK1C|a>|=S z*``sVbM<zd;OB3&mh{yBMUFi&7mS`s*AqR39mZ=xJggbEpCO9D25im1OJJ)Gak@ zYtYo4sWDSurmjpq(f7mN08OBzgDG_>7K1m zQunIcNc}(ReC?rLB(-1a=GWmf6(SB9ak`l!ww4paQcNe*pU8})s@zn~?A1^?rxg{r zlB?B+xF~o@mRon(Zrz#s3f4$GxZ%#mJlD3*p1xVu_kGM@FBzlW40{^FzWZ*i&$yH9 za+&dG;+S1@BT<;vFsBNPtFZ+#r16<-%^d6E)Q#z5?)(T>kD2e;xn3v-Ud34g?o51x zxw;a(2}wL3snmmf(E%?ww@ z5C_{d4#e*jH39QUwLfNf8VA`lCgS?CIso$tHJ&z@W^!-O4op^4z}@zd2a4o<@PH?I z(-tWFXwD@#b=%o(z3%i>q-&d+mpTPw25ef?q#uF#PttD56DK-SI6LvtKggFv*3X1r z{xyGif*RQj^&h2AwfK_=T%Acg~mm(Ywj>cpn$^yQnycq{$gBv&CnJ*01OrNBKUOe+`eDPcJh znk(Vug~^R!5~(Xg?n4qYGNvQxwUQLaTdC8`WzwPGC9d?jhkWbEqkBqnj>PE5nzCz{ zyc#ACyRz#(Bt9eCI+EvZGON&2#3aR8D+7|gqK*^$sVhVubvhjMD(phBzv>KJ&hy30 z#lHuifZR42J45WRtFf;JuE+l{*Pe@ABl6W4B-?8_#Whpxr)P>D>SW;~Uc4$5exz5w zI#Wzk2aAE&0~z-N zoRLwTgim)B#n6df_Bk3!;50FaUfxa}f%_!UTOCUt4iSa;4^lyGfVLbDR z<&3-K*e4KgzKE2K^wqB^Hy|4Wf3S8oK;8k*#}4AbXKVlA`WYKgw>h@OE67)c$dfOL zBA`+}BgU(v#CUxX>l}}W{p1YtR42xI6lIwta#a-dZ`xxYpobF1v{!2|?H2^oj{5@B z#zCO1Y414NyA4n#z7K2wHUe)0+i)8Ki~|4A_J<7QKl+2p2yCS#VEW@eKwnQ7(_dS|blje? z{nGYh)0h7eOdk(IO<)6M^wQroP$hl{yac=jYzMa4aqvUn6UM?T?pP?3{mhsMY?H^* zXKrxEg&7+TjId+GjFZ0ry~`Ot^zm$9fEh=-K@;QQP?2WFR?GM@V{9K_$6t6DGX{fj zx|2uwxflXe(Kk(97R#H-!vi8q4WLZ{`7P~HN?Wg`KeQM9R0)2Zc2Z5a*O5=tCz^;` zClVRUgVgyV6stdEj@St0`J<9c; zh;5(-=qFDS-LVI|un;@nxC0eHG0;h-vPNKFoeOti-w50UTmtxkMR0@O`*R0@`U`yvoRB3y|HA zldL_PzE_7FRfimeyLAgo!^kq~RMJJR0i5*jVnxr$LcfVLy(I+HdzyL+s3WWc!qUe% zqN|b7q_K|_<@l8W`2Y`SYyrBfDn*7$BcBEgul)-=yv_`6 zY13VzNI6i6T^W?wpgO|kvlCm#GiA53oZB8jePx;ApKv7I*VOL`^d*?^7jgzrK54V0^+MY+fH@4t{U!u@PsOxXE< z0%7S`-iO?7?K5o~4h&4gZWH|i zF!ey6WFwD$Jztap8Ng8L*KdHjji+wo}Pz7kyiBSEiDTH!BN_L-t_KA&p(ew+D3=ip;Zxvv_7+B8@#8`do)hT_?twXA97% zV7mtUQ?MQ~wMSc7%FuznR=#litPPLMVdhIl_E3Xq zt2$Oy>%;-}Ib62e8-67+;@%(_7P>=Pxkio@_fxNckr`XyKKgMsv^X40T=V>QZRAaP zfygmn=6`k$7<>-)y*g1qJ`5OntvEbPFfMgT2eGCIT*oQ)yX4l*7c~4*@AINS3CuYQ< z;xJZKj<9?PK$!C^ZCNQyLz=pa zm7t}JfF&C868?lT%q-R)5n#?(n2r)%^Ie9XbQ!bI57l{&| z%4iuQUJy0nSsBY-Q=Dug<7I+O6hF(hvK{9_Ugpfqi!w>PB$LIjl3g;H%DIq^vXj^$ zJIgeg&bgr1IS=zHXKtp;F48Bvvi`B0m2dX=Iq#FnDVyIo^OMb~8_wRy95F-og-M4c>=eMLPpq{W>6*(Lk4lsSNNG6SJ^ z$8sX4Q4V6=YcRW$L*+18%K4o#SuQI$o6{tYla*pFXN!i*5ptv)B}dCKa;$h?j+5i% z{$idyfRjY?IZJesIFT~~6IpA#N!%w7k_XE}%y|+d`QOF4oFO?vP7uyn{K{FOmd9`siE~Jt0(z1YKj(1ThcilYCNsh{>=`cL zJkOcpQFhnX!vVe*KeDqrOV-NQHRlz4Xb>@@aS&tPZO?6aQD{_45xu%6Ez>jm;c&LLhbFX6o9W%6=)g}hQ; zC9h^J?pnT>xK3U#Z;&_2#q9i=z1f@D@4b~B-`m;Gy^}rQyV?1@hkf1U>wBI=NmxBcGMe$>-$@a)W$Pz9e6kugF*B zYw~ruQErlN$jx#KUuwK1-{$n^yYfA`Rc@2p#(C-PJFsXv!r$S>tr za;N-Sej~q?-^uUg5AsL(ll)o!B7c>?$=~H4a+eISAs`ipSCogZKfEeZMX6{NqheK@ zYNO&+f=XlsvYl$rzH2f&uPN-k?#J$HC-z^{*n#cB&TdzBaJ#XG+k;))EcS78*vajs zaygfp$Bu43JF|XHs1~t5Tfz=)KX!o!sDWw_JHbQLP&JI5;WF0nD%kt1Vy%(AP-XT+ z$JjOS@$7jXz^>;+_B{_`=kpNuM-O8^^axf{|HD4$QR-+_tyn2%hp~n|#_8-b)~aLF zOjW1&B2YD`+3YzssyVFDns4vss(GB3F<;=Fs7~U9%qi+rb(%U|ouSTD3)ETaY;_Jh zN$08a-95^S)Wzx&b*Z{cUCs%bE7eu%YEIi+8~zO?`H>o#R8{fj-@LTNazN6k%@2Rb78|&~p)cfiK^&#u= zAFEH)r|L8Hx!BCU@0aZS?qu)x8%_s(r@mJ|@Qowi9I9W`uj)7TyZS@zQUS=kWcN(7 z$K~v~MsfZqM#r-E+J@cN1f9r9+jhFWPSVM`gHF+@dOzKf^J1NKnoieUH0zT(LwD2N zbr1Htve?mbc5HL`jwny}(fOP~_Or`f#Hpqd-Iw#o{n^bOs0Zo6dI;yEhUrpWrpwvi ztz?IHxE`TL+OHzVaH?&b9aG**`wbe0{0UWUuZl zcH_>md!*-c{`3M)pkBlo)Jr&pdKu?Xuizx=Rr+dujlNbd;-uB}`UZU?XH##|OY~BG zbIZw!J6JKli_;a$IA3uuCoJycjKvDQQa`|s;6v=FuVUZt5q756uoL?@=MbLYw8B%I zQCO$f>u2<{`Z@i)enD^0FY1@{%lZ}ls%P9mW5%fR36Z6P6%!?_X+R#)zWlBwblec0@wFz87lwRKZ#B1bw2Mvio%dq>)YV@HL8d&g8yX>O|V zj&X9(TwhyIS=i4rhP1uo9ItVX*LWwbHsfbB*H5o*Y@StD-Q46IZ&UP6aDq+0%1 z=J1vp(UtYn)yPqiBS%@E$ZGc;)%G2c)oyxILTSWIX^HHeYBTAraY|F;#;tMU);Muv zYFfg_P7h0FddPW3$k{W)6u8zYaIKSIWUbpOwKn0{V?x2>W=?Ocsj084uAf>v#ari8 zZe3XA7WVhl@gi@%<5h3HV(Y8T_xgK)28B~{p&xxH@ zdt4BYo5N77cRg%+g{A!+yMIx%ean=FS(B|xewpKwU*>n8oj2w8b#jp3x5~Kt^ZOS? zmR7dpu%NQE(zq8?mX)}+%_+||9qb~TUO{<<<6ml@iC6AEyYWi!WPGZ%KU!bik8Rxg7P982HQHuI)o^Q8*0=N zn7HL8u(87(D_zIR7DtjTc9Sh`aV)4Ta7$R`)=;@y(sH*%d8t#`<)zj!cI5QN>f>s{1K2keRF*q$a=VU=mG94YV#T?9z($L6nSq<0 z9nKc_I&~3iikV+plwX)%kQj!WFhz-Btiw9k_Z1Y{hM{u$x|P#6+_TICf~^Dtxvg91 zwnmZDuM3=_l8DW;J7|iEoybM*peYI_;wD;T6U#5Cu!FRqvcm0J74Aza+^$gJ#;U)?+vthayHgQ2YN;EwG!&J*RXA@hwNyPA(#>OO zcpgjpyCM6B<*~HPb+nA5Al_DoVS;()bbILWs5!M$YudN?+D9A2_5y#tEk8ZoDSv!* zu$97J<M1krFbx&Bve2RX*d|_46tYl@uRp)c z`WoB%#!p7Vs;R4)<|LkA9~+IVV&f#5=b1H4EdkoP4xu2nmJ9vP=qSuDF^vXAE^#vJ zKD3Z%JPh92GvCs0$1}gRXa6wI{;fR=!#oSEr<0)qDyOkwW=(x~@$(D%<;PBLuB)qY zif4lQ{ROU|m0xZ-N+B`?A33r8|S-i;*gj^hYsia%PbxA=R35X zWSowI9bQH&`%yNBm=?P70d`9uYRsji`Bk2&$lcEC@*S31nBUiij6+D6TvOLDH>|6d zMprjBHq4#cFxRpvsEW-Z@|P=dmRXhnGqW{|?T)*0OX7KUYMwHfcS5Rci(r?Slu+o z#Z*I-bulHjNR#UoRtL6XDSC1Aw1(zJHyMMOWQ^@3V=$YHK}<5%4ppV?JtX7wB7b?A z*Ah5??DQ5+=J!r_CWDS;$dNxWY=UYXOf@1VI}{e%Iwpjst}TI(Qe7hMw?y0@ZE3gZ zeDN)qt*_9d!#P@fcjp`obAP+(&9xAVSq&iq*uKRnL;`IvK8c!6SeKC6VAd%V%;{zM zuH4{vz99Ls<+itffo8#S`Y&KJN3)MR31(qGd@`_t}NPb~KnM2+R z%JTC|9MP*V-||>UL75F0J7YdGa;J|vxh=>yq>Ypus_Zm}Bf3J=+|lQ+imuHwpN;YH zo(aJ?bqiN+LlDv-J^uU>M`$l8<(+nHBhWfjw7{{M2{;s}pwJb(3i~=#!_;lOr5`P| z?08IWXqw@87_6nl{=SuV#$jyh=&7r1tagg!%-8${1&-)g;N%m@-{v#Fu+Yg{VZJj5 z#SSH#U*=}4$cYR)@Xo5OXPLrDyVN1O`Oa)OzrdLY6jZiM5c)>f*Velu)M5-RYulk^ zF*A@X!q9T;(9p6~%FuGEwxB$i8^^t%za_&kHHQq_JQeh}Y#B#~Ejx~mB#T_^il8ks z6Ppq<6qo1*pyr8l&n5qrUTU?S~ z>2`;F_t{xKDX1(ih=QwGLgY0_-8B1b>MGJaQ!&=P$#D-OWln-HheSSLoK`~{nQFJP zb;BNW8#gya&cN{dE8=HYH?pu59MDeN_OrpL{E7tY-Fk34!an|$?Pu3C);3HvOQ_7J zr`qn*p_Q8%GJF}^Y46T9ig$JmEGF1%-70dp9?LHM+8*0%I8H--3u`g?WZXMriVkj` zsl+lQOE|C1FOp>t4fX22l~x94usG62o0f$eOO$qdYKg@lcINNcAxFQ%#Su7yQzo~` zi*4mX4BT1_a_n|^jv8!he^LJ2~ zzk`^5678V$lqd&-`MXGHSlM^ea($!b)XsCdn?dMq#r&kQwj9)%TgUnRW9*uvQ#lSw>2{gQ zz7fqK8dK>~t}3^~RJxT?X)6QTBXhfW zl{=xXvJ>h;?|l2NSjP&BT;)!utL${zMus4}6VgH}E(KF`=h#(tj_o@3FN`)HW!r{} zZ^7~m7HJ>rrp39ob#y|TW_3av%z8xGP&8|sAQF~HlbcA>w6H`Bp>`56SeS=Nz^T-J zuJF+>-$~5YbYIu8Z@6QAncy1@PIhE-O2q0Q5b=%<0?u@B@g2SMZH*FoW=$g+HD^^f z&J-PI&73upFLF4lV$ZXf@4F1nmqAhOIDrtwX@f+b&6jSHlS(IJ-@r+dcyy>t<5bDv zoI@GM*`hMe9+q&P#reipig)zkgxt(|E-7Bo=8L{pI7cJJ9DSfMIo~J6CVixJH~0s- z8gqxb&EjJ$eh%gf`ahV@q4z;@THk1d4eEn6yU}JJ+Gu}e-;vWRB9iakBRQ4h{So-u zwLioD00`QzfupO&yB=5#tOV`>ZU?Rdt_09m>^%=aua0*fV8ZdWhj$uqG;la@AW#Mj zB4__MeYK{2?3bY4F`n7N>)As6`aMT_`0mCt0l${Z!&h5qksKCu@C@)28QhZxWP36& z%@_W{)4^l(1lY?HeDH~V<@y$UhMtV?q~Nn- zvunM-9u;zP%5I+7^B#iP&*J`22+Eu5Jn4h+&kXuF_0aO<>FtXyCsN!;K|@5!4~t#X@iyvZDQ+#51dt?Cpi}I%v@V^k+0nX~?;oX1xA`xy_=6UQ8j#!lEuLlFGc7*U z;sq8TZ1F;iA8GN2Ek4fT<1CJrc+y{P&0fY7^R2t-vl9J4riRT}z_jioY_80iO({oM zmjf(5-r_4P-qV_SHm*~*i~_U~eGkikk;>Wm^KAEgf zWqKBro-=DLaX8VY(W@nF?=|CaEwGwWucX{&)Is$*?FhfJ^|9IZkuz-FH(LBxYyNC~ zuW?N4GM#var$}6czhLp_EdHGJt+y^StxGmv&GvFnfjL^#opWC1RF^r?<(%hoPI8$O zROX!2CVMi~b>d&78 z-|&6iKCi&Hdkxa5wQFE!YnOljZ0av`1%7t$pdIoFVSJ(bU$|^-hLtz)CACY+rX>UL zw7?y}1AL{x75K=SZ~s-U!n4G8r2qcv>O>9v_V1I}drZ^1PI-d68Nrl zy9Cn-*`c>u9j|y8iej$dcnER~>$ck%v%&t6VK__+NBVmAsKNdfbcIt`Dn<q_rGffjI7minK$lnnZAq^*K*bIh04CKf%^{9It29j3&5os#y8lGf%m`{09OIG zIeLTxW=aNl3~{*@nZ=w|$b{r#`P?#(ao{oY(1x4>413k5zieAr&d zX}l{)#lq@3U}WDvyO;$A-uN?5{N8Qt7nI~$%Q&t1prI+w6<8a@{)rtNy`eZQ^kN_K zO^{oMV*WEMNDcm3tbZ1I&(iHH{@&%eb+9v+GK>)olk}842I!#LArD|4;&ObHCT@Ks&!RvO(Zu`<6Xs8O)sR71$Vf z-;p5#&;1+8AlQ>bnScs!4=~$@ejDm-{TS5nAr=Y_gc1Wh#!^@84)~>XI<&wd-I{v}3 zwGO@Kb71FR$$)!?|G&BXbD8A-_P$W;zpB?zsDFd)jh6&_i<91;(}M8#nUx?T7dlc{ zNJ0#g$}&y(P-@ORBRmc8!dB0J@C9y54-7ts+u<^ao9`$n+$Vvb z-IdWF$^Gv1KRo*XS*8gk)~eQ8^_ft(a4fj;9ipCrbBuorok~J$gn4#X`oUV{JLCTU zpUbY`T4|#t@Bcb;fp=O*4d{W+F%a;suL@)0>AHC>LirZUt+t@o{VHq89p(R zX|N^0*po+2|H)kyNO9lyIEr%{%H@}_j~@gA@-C5|2OXo(TBjx)Y5N3 znK0!3zj<#cRp^izx2A6!+pbZBeE%0%YknH)<^PMf?U`oyI5PDdl<|czBf6;OZEp2EjCZ|2n4(CHVTmjnR3egOgYc<35K|^U7ZWY`E(BFR$nmZ5Wu0*F> zHQJ$Ppr>sl8p19>-`T}z2%Cilw|CGWwhc{StN7zzgm{h1@*%WD&5;kIA!;6a_fJvh@jr}(Y9aqwx=3Bb9|tc{m&<24(|D!a zfEK8$<%?*6S}b2Of83E9Irn(G++_Z{Bi}&h({kR5t|z(0=z5ZG8C_5E9nMd#mG2p? zPI4>%x!EYUqs3{PeBWqp;!mz0st@It=x+L0er2>b$(=@5ll%rPO~1o+8I4dsslQe%2le-pQJjWJ?T)D zX8!V{x}!1aNY%q=OH!F=OPZ##`LkTD%Hdx+4XUTnkEC+ZkHr58&3}MYA2cMLtn$%~ zbfzjWe*{u~^dp_43ekpijVeO((Ng~Ebc?=S4MykDovIYAM|Z0-^d8-#$~j@XTved^ z=zdj+_M=s*%IG{&V>pBRwBoEcy7tT;VZ5AZGyk#jaw}|e$C$HP=j;PR}cPF)Xm$;kSTZSG*51JGoqTU|nWTDY0x`rBi5=xs$tCe8ay)qtNU3JuW}+PfjTU+)Bph;eFrt>CT(9|b9MpqyBt@2j1 zlcKQ?{0{zbkYM!of!{6f245!c0Y`fu<_ft2bERB~`vdY}@Ku~bPC-ZCCQ{xkKg2}i zo`^%|-k0EC$#1~Fl|P6i`J>|hBA25nV)j({eqBoTpTy=3qX zssnh6N&!z*so?vm{lGh-9X|q%d!4{L^T&z^H1DN>rz?83(ZC1ZRdogDH^kuGR5x&b zXAj;3t>6*p<;w)mQd!{H=o^*j=*t1`sd|FvsXTBr^??_t0&qWPZ6!MU3c-ue>nhRR zR}5Z)zIurczrNu8)Bx~7Y7l>*7>q7ei8j9>xDQ2twNy}8Oen1AVJIv(6qb-sSa2vT z<|$}=mT22MSEQT2mx)Y6ZP9ZLwZ-KUbs4^wqp`S?p}CmQTwI{J{GkVGi?;k_Y8kpy zp}8W<&|LHyuTU#+f%1wD=-K0cKZgE-KWa{v8Y&F_xcNt&p~c|PVi9dlzIpF`|5q%q1WIasgH1nYLgCB8xyLH3Dw3u zp!qTay?P4${ahm3P;m6ZLcwu?g5wJX7t&C0%uG)C`!s)M6FKP5%MpD!#h;4{lpS9v zJ0`mGL{BJtDRIkmnTSPeUOD(UJq~=l9uJPDJkbVSd3>#czPv-hq5Gnjq5J$JY>J*D zx|%<|p>-MR&!5Dg{AZ+ z7V1SpqXUos-Wg6HIvY+P;`tlP9k{>`!0*y`fx{KRm+58T@CNXE^}XP52=M##ecH`K5vmo3pW!Q=pxg0K^#tyAP`|dg8%|^Xs@R^B!G_=PpCIn`VO*y( zX{SO-4c8e$dL5zBhU*O7gX?%Xao&~p8Ghpr<1|s^F&iF`!yRk+O*Faa!+S#9rHcsh zl`P9wMp};2!E%&dmX{2$yre%R8wB?m%w0&1h7iJVl)jdu6j+W@jPzAT>PG&`w;UzO za+DsHqx7&GB@K=;n>sv}JHqmnRQ~H@zJWR(Ev^xkyL3dCD|B`b9@9x&ibmIV{GIt4 ze6O{q(wD+-BGA`*E43HmI-M=oQI_j;-;L`$j?5P+)}pVq6CCJy+VC~*Ty*NbPAzSN z14Ua76cxsS(A(R>fqKJ%z98h6+_~_gufPpADu){xJ`{lWB)h!F$dX+w*U7T{ri0}) z(U!+(c+3>I&Q#>eSUAlr5rJmfli(aD%TxKIhv7P@d?#=^%nZ%3{GVZgG+%$9HCA*$ zZ|v2CzXm2t!f*U^6(ej~=Mq@1e!*HV*%Z-%fMloUBC?<>>#e{LA7|V@fEH{cV z`eflo55kRN;6|$$0juR|{-}XwS@1QI5rTf%$8dREK90*;`GjbPrr9Sc*HiK-@TcX| zSFm*7t5deTmCfM@~1AAKk+|I_|ph8M}gNG&XnbH zCWj|E+{ocW4hM30Pl)Suuv{m_a-Ck5>kPD9r zcTC%u_I%pfwAJptGHqqrJ*oYYUQ4J;m>hN=nqcmZ35TZLV{US=+a14=+%(y{9&Gpf zNODO&W3G*v9dmF@F1htPcl5V5&xg7(o%q32(kTVyaBfOt%CqNf%4hC*=8lfDbuo(a zw!WS6yJpn4QN!FC33oTOLhVFlI=72`8`as?SFp~)V;DT!-W}8J9eHKs)U>s@7DdLS z=S6zFySzVB8@tujUY<^;J!w%>hTZC7_j(LHnYMRpwacNVR=h8zZ|E}0VDtoRQ@`nX zwojNR(?<^Fd2cmMeS4n`-MhWtw1v|S!M14Htwr|ID&8kUx7%Jf(+h*`6l|^5?Gt*Q zWZEuaGA6Z)-MYRfrLE@g*^dU@y-RG5&Wrli`!n}-+*gL*rtO?Q8*EjljcqK`rpAA@ ziHnOfD)xAz^R7rw@SW+CycfIeZd%{8{3NIS(>r?4^PcCVmv#@S?qY12`}w`xj5+gO z$3((AmRYMlFw(% z){Rv2kddmGx#0DH{wAm9q`^l*byrDH{#PlymF~ zT$5daYql$J$Dxh=968tMUzew%dHphZx?O2I3!ZqrJR3f^Se}QD_1ok^^sC=3FF?Qg zz4AhItFM$7+4Z)I?Rwj#cD?O#yWV!CU2nU}uD4xdc%NJZ*V`tqv#V}5*;TithP%m| z?MmA%hOfz6;bq1`-NK5AxVat*VxLiw2CYw{_> z*W`M$(k7opFZqAu%jhJZEMGBN$>po)BR@vIZn&7-h}Q9w&4iY!{2TN zIFHY|h+qu_gS7ddDyGkxek0ig64gb(Edjr}3s|;mr&_UVr#1_hQ9x#(m(B%_2n^NL zz!cnSffH~$4OkFpr_To-#O)#ADd1_|5{LBOnN_gP{I9qRx%V+nlKGcNGI|@5`JYHK ze-ue(eJq)kh-B3O-c@vC->v{CWZ$kRuv10`K9f;EG?2ve6zr*i&(tE|I^cTX2H-|u zao{t3955G{51a|y6xgYk084>e0w3yIf!l!Ffjfb_fqQ`E!2Q5V-m9q7Z^dX<(!J!o zFF8Myznm0{>7tv==Fc?zyBpfjg}G@DAd~rI7LW~|12CVb%u&Q_PfRmk%cab@lsT6& z=Thce%A5;jh+$Zvy?AoEAyFk2L3}hjbIR|J0nt|hhxxhSNK5#s60&pU567X%{75N?T zJ@5nnpNtFyR1^>m!~{00SRf8)1H=OfKqBww55$~(>Ks@qhO^@{ny&;N244lN4lE_+ zQerM8=2BuVCFW9MF4Y4A{dXH(35+iBr=!cuzfuI8K)?YK_~(g`_X6fbeCrV!o<>gi z2$k`0tvFh%J)A3!evr!SH}1+Wr$0C*61h`M>0x>*IR1|Fe~%vbemfX7Jh zabO#Dvz?mVLH)cBd;*yB59WN6`GTB1OGc@OQRkCW7!q~0WT#@cxt zE9Y^nRK!W@NV|cRRJj&-0(cU53V0e=2doF40iFe(1D*$705*`H7lD_6 zmw{J+SAo}n*MW_|CSWtL1$Yy93wRrN2Y45F57-K91GWP@fcJq9fDeI>c+bZG)D+&D z%34P%>-z2Gx2(8)2Ye6w0Q^W~-j-ADNX)bmikPmMzz}*kuDdfASBFbF?-blK0fF__BI1V@iI1^X^ zT*CXW#a;wl2V4)_0Ne;H25thD084?}$lvY29l)KyUF7v{U>W(n2e=nl4%`Ra53B%I z0uKNW0uNE1hbhl0U^Vb0<$4Nu8dwLc2c7|*1)c+*2VMX+P`(#|mw=anSAbW6*MQf7 zjld@04PY~{1$Yy93wRrN2Y45F57-Lqq^^FzHX1MZeoOoe`~v(6{096E`~mC=d?i)j zcc}pn5CKF6)**eZL;6}LW8l59KpfBphzAmYM4&Cu4rmV~1-_HX*d2frAPq6_ya~JoybZhqybHVsYz4Lf+kqXx`@jdlhrs87pX3+7m*8Jv?*zUEILU^ru?$&b z8M4MQWQ}F=NAma+@H6lW@GI~e@H_AaunPzTb}GJhQ4&yq20TCn-~}QBZy>L{fxPkt zQpcT09d{yi+=4Kc2qZP#*XTNor#@=osFG?-4iMI<*SFM}fx!Uuo(@Qzx1_(MbSxqB{W8iB1Km6aD{qdk^@wi}Qb6_xae8 zhb-H%& z3|=CmJ!B&S+Cw%W6e6JRGU_guBB1W_z|55FK^Vl}L--y>7(rNwaLUZ{*jYS}oyGIm zSv)UaH1magF~TJXmm*w-a5=&i2v;Ipg>W^(H3-)tT!-)@gzFJ*K)4CvmYGA?ogBjM z+Nf$u_! zKMD@}7s!7Rko_XSNe|BAq{KzdkQOZnp`3IL@~uT!hp--D1HwjxO$eJ2wjfL*oD2Ez za^SxkxbH!D2Kb*vcn;xtgx?{MP2~ZE7ZF}Ucp2e;o1=Y7v;}r8M;Y1zyOyKawH(E+{^au*K!oQmZR9U9L28XD0VGJv1>VsUCU8$w!eV0{RN!uFW_u{fjklcc_aez zNCf1Oh&eO_Gyb45;}3?+_=C!fKd8+3gUXCQsLc3-%8Wl4GUE>_ zGyb45;}0q`{@@8_{K3GCUxb(C|2JlR$n2K>qFN}ukMIG)hp;yI2myVJ)B1&wPUijp zGW(lQP7lHlZ~?rY83wsZjdeN-AqLuldH4p8hCDNc88?j?=Y{Ozh3o=v3;3ObZwoY! zR(uyBlmJ$WP=@q2*rk?3R;s|?mB3pC*{K@8o$wP;hu;kdjR>SmScC7i2ry941)gu4))LEdK(oo0n$EZy92Y`f!XfBYGU9j(}qv z0mnE3j&TGW;|Ms$5pawn;21~1F^+&^90A8T0*-M69ODQ$#u0FgBj6ZEz%h|<~M)5*M@j^zK2FLP3Mwtf3@ynTD(~E!{Ws0pt}gL7$O+${Eh8*LC95W3$W*TzLG~}3Rc_rvL1>ZXmb|IXFaL&wkkY}bK z&rCs{nSwks1$kx)^2`+EnJLIKQ;=t-AkR!eo|%F?GX;5O3i8YpnSNRD(Ezo5#zO$9^`5m;Ghp^9V0~c+F1QZW``&aPR?U>iw zF|W5{UT?>o+>SZ99sRZ){k9$bwjKSp9sRZ){e~As5q2Q#LO2Uv7i8d@2EHlmo~KY+ zJ9sgJZj5YL+c@+KXy!t7^QGABh3e-CgBOsmfZ;2S?=b%QRJ8;$6zz&N;J+V0exlua zJ9dWWBF)t^Z?JP_K43pW`0>o&q(|XLBMd31W^W+{?Zp2D&7jEh80d)rG!D=YfwLWP z&?51@`=|JIuM!{2OTumkoHHL>?-8a3{?wTlF{|!I8TU)Sow*aEv{LRt8d1M?P9?SO zxsW6Yb`%&Nb3rZY7ojnMH2tx=95taeI z9AO+`4brVeSckA4VFSWOgiQ#W5w;*qBK#cq??AW{;Vy)`QPw>OzeZWVLHr{Kk775A zyx``Cz|9YVn;!xG-CBe{HCZRJtEZ_jT$hPv}k;M5p&R|?-f>3 zS5;N#d#%2@`t_uYj3fj{vLQA**I8g~s4wg(DRdWR7N^CFG)O^oz}zd2yOpqtTLQElNo%YBXlo=7pKcva}k_y!af9 zlvL=bmckBH10A?(TY@dYXfbFUHrbf^&QRQTSi=$hH7lOCULdEkL*=uTyv+N$ur z^yA2B#5u2Oo81;~w4*JQD(N#NUN@t~hGwC98|{I=iYF%6vf5>Kb9riNg~_q3_KusI zT3efLzSY^@R(orgWbU%|+9OKqjS)Jvv7t1o%2VL3vq#$N+_hyL=(7kf) z`RgZ01=t5XVZcMJ8E?@0|LbG-`+mmieNQtqo%^5eugDuZ(z2sS8yS)|zK{LfcQ32- z9YDG-+`bo-I(MPY7GCGsm7Y~=^aJ|BsFPSr&yHr)eZMEiU4zOmUg&v~ncceR+!kHq zsY}rY=WPwwl=T$yMp)^IZ}&auPRgI}uR(*q2DW%ZJo*=(eS@rhaL@-Y$i5euW4eV^ zaoSJ^)on;EQypwbMMDKN=b@j-tFm6{Cv*t!85%2kBc=`0oV3G(rwgk0ur&7u-N_p& zDjEm+o7hcmw{K$OHa{i9z@ZhmZOq1)kr`2lj^%Fg-Oa|g`Ci4?^u3CM-rIdQF^BI( ze?B$xg^PR!J!qc*U6;9)SUDcCu{;(dp6X}B5jGJ2DxBsgL+0+Gg~Yb7m|+9W>IRb7?Mp$u!TR)` zI8x6v6%M2~otWSc3oSkMnJz!w)N)CxENXQ>-5Nb{4L)~gS0Jr%MP*ZAPO-;e@IK}0 z>TG>Vdc4q69qsDV=~!Xm7awP4`95aro1GeGGxaG+u;pm$a{mnR54Uo&*n)R)1lZ~E&t`gT^PE%2N?Ra(Fq^@G) zfL=c`)LCgM%7~7ME9$DL87?Ya)}EhltIMpdG!ZnWu)D5q6qj)s^*Zc5h_j-`V$@H4 zEG2y`ZE?G&VMGAQ2UL?6@&tuyj3;H1;17`1-E(q-XVl{v9cB`^^89#G1VF(MOe@|S-cc`D|qkw0Sm?vT#sbJ2wJhgPJb5ie5llr-kA-8#5J zcg8iR>sAbIz2*$v8OXI;I){fA>4ND~PzHKT8bj_FRK>TeyUdb8HG{=@du6um>F&Ni8;QIyZ^Y!|0 z^ul0Sp^_4inr4@s*$vLgl$`KUG000vj&(~g$m#H7z{gC!+{!CK+In41OKDl7A*b9~Rg#j|oHxGk{mf?5g7AdAv=&cSbY5Ow5z*lR z9UY)M3HI(Zk1R&;H}D2dfLIjg%=ZcRP=cDlUR9UqAt8Rs9=Ml~oa8+Fe1k8?$uNY)fds2FD_#AY4ISOdy2h8ri_ zT31v>bcdUoN=my63%g4@x+8m{t5@i1xAsK$PS%zWm&WBdbF2eZkyQg$cV&FZFeZ`2 zOQO;1uN7Z)xa5+|`JUaVp3BCv>(|xQt!=QiS+%;}Ze8M_!(T1uR#axPHZ3oiWlgvA zo2o;rCCW-gtx{>Mp#_6w>Gg&re|=;FpSaA{xuvddQ=4m@(>EzEZ?A8e*Ai_S*KF#{>0MNvYgka1&x%{zwBBZ*32#K5=7|}Jp@Q+EH)iYg_>6z> znrjO4_pHji{(5$sYhP|rOXj4@H!9kqQYr?08Ib=}I}~1$Y=htf=>X%jjE^piGIR1Q z#$HpmuD;uosOz%k`+mh7ndtD=ax~JE(k@d@y2Y z*|MRC!R4UXgW^+oFYwjXKc=u?DdLW&R~MDnSmqch@9n5-TZF;$VUlHj@uDW*J1o1S zX>`dENZ)l>qkk>kr#9oZ4jwm=c1Nh-SL4u3rRot5{Zv4sXoOLTw08Q}T!$?@+=wBK zf~oK?s%UYriTvZ8`Z!*ZEJMd2c=4PWZ10?`ub=D`pFK;L z_H>Vp>FOrCW87Qo>bAOLx+m+}Rt!cCuHYYp-!oGwbpSt~Pa}aA5&VIMj>QLea`1lkxo?2o=Y#z`?BP_>mq>M@^?IVOU$_3u^}7DPiE}r^Y(OqI z`xOt#^o`u$QCJsY5r8rr7F)8-VbdgI3Tq0Udve(oy33b8_1yAnbk}@y@QEi5e)H_J zyl$1eZfKj4P;NG>l3;b0u#^n2o2IfrO$!SSv}XQNpO;#+xRK@g-ft(4L+lJ#Yf;x% zLC2i+ycSaWAKB@?1FT^+vqigB`(Dwu&zv(VVyN=RcCpImU`P zr=r%*N4a@uFPb6_N1ep?ttZ;A>#(^s={wP*Fzr@Pr zQ={F)1)y+!Kv%$uJGVFYPxSUJvUU}2WzoJ#_IKZRWi=~m>bB@A*L5Y#>t5)ok0`22 zTXna#WAYAd!B9hV(?kVY7Nbt0eN+^UsBs`>Si<#2y$QQT#xC|<$;{X7+=;JrozHve zatK@L9hbht9`r3DN-!K}9rL`++oLh7?YhBvN-oeE^kzI>YP4R3`hd0qYzj94`blV0D8!;A2(I*Cy z?Pf~^MrGymFC|o-!ktO37dxto_Q}S&$)4_wRRewf1B-R@2D|Fl)HQBxcaIggZDsC) zFb)palG8PBv;u5Q(~t*Po5?u;mF&&z8si|8Dt`cv!aQGc3^7#|Kr zG^LWR)5fDCmb1gY&$W@M#u5Yjb9BdYpH`neA2+t?OiF4%EyxPKF{B<2J9Z=rHx>(k z#;-M*z0S;D5SXKXN29eqEv?GbxV58mvN5MJJ-x1=VaLGGiizQ&i4}u=OGbNpM@My~ zi=5HrEvE38h@85@=&F9JwZAI5ur4PeCfw9g9_?II+R;=WQQyQrn5VWfqN=vGDx#9N zJ@t3)thTo)N)>Rq(1k>hj+I2HdBkQmi4}Bjtn44?^(=}>@O0I$t!tWW@0e_;-P(m_ zU+P8&bn6_;YeO2n{iLd@wVhx0Y_4G~c^#z@T|+}%5v3h@XnW6$o;hKq70)Gnu65%A zTRbuATZ{z-#vAshrS1QsFk7z3E_7v1d1=4NR0%VB)s&JC+9zb>S}38fOQ0+_W)~D> zf8olMb(yZh?5UTsp~`|59OeBO`HZ}`{MkawRU3^oC!yz~?JzSGRtyhU6dG>ap9T)A zF4F zEthX&Ehk^r;$ml<#YbzSgQ3gAzHsd`bh#rC?3W9s34XWLsmC{q}pF}=(7rrGyGw%cN!X4-*O$g<~{do%Qk4bEL z=EXn-C|@O&hu%j%>VKKnm4ly1)wMiyeJ2DDSYRp=+YHV zAJnGP0OiW`P?G*nc0qc1b$&axy~X{FlkIIAYYSTP(h}lwl@cGTEwU$QlWHA#m6;3b zON>U>vQpck>Z-2NdD@8iDb8ReKugg~9`5`c6}0f##f1gpeptIj@lYy3m{lO^&}y;; zRJtoSJt5X(u%_E;@;j_W?&5)_$r`2E-nK2Ss_ZJ`CF4bSdqPZ7O=WI%=7NUeoSf$6 zrP3dQEyJMcN@C~1ju*O>RVKU1rVqz|Y`^c9tViwpmZ_6|IriY-dD`MThvMPP^4FiL>?}^*}^T9SIj}1l*E?YjJ?O%?XSuxp~G0(C|mfxnd zmBa4WaPjRGjWqwx#X?I6X|=ws9;-kj7PVB4R-SrtWw*(hb3yOK#QT?AQq|jU9jLK3 z6+}ntx*DB>`7O0|`4y?_*SmaAw|rOI&`^h#F2?(j@1opdaALbH*TA&?Cu=PDgyPm=(P%6Vd=?M6!YiF-XF+siMPzgV{;CXj4V?(cevbtCwI-)S zByc!QwfV>u5j8hg6z-mI4d+sMD|lEK@gnIN++!eK#m}we%>j6U>Xj3~)zXULVCs{V z)N1+6WkKjBKU6wpbr9MTfPS++2%QW-d$t6jcPmhh+@-ozP%$$q?Ux=8z|&x%PaG6f z%du$TXwp@Thnx=?7+O|F(6F=Exi|$(_I-|1mME6d6LZUbFGF|E4~?Y9i+x+%51{_e z85^C0p#(K=mvP+5Ad2|;7;hH=FMzkAX>3sdinMCnWuf0VCz8T=KSn71cwq>f`cc3Oa5p5F-VX=89Vdd0g+Qqv z35Qxbg;O9(q<$38ZuIu&f= zlu>;&(hA%fA~<$OlA6P@I-qt1(FCO)gf0>|2&$2m;$9Kq{&2>L)I=S@Ez(}xHKJVK z+=&ddSHOK*I{m}i2%QvWnaN^GKG(x0rVpkwV>&dHm%0D#_>tp8W$b2&zC%jcf>Pi^ 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 literal 0 HcmV?d00001 diff --git a/apps/android/app/src/main/res/raw/ebgaramond_ofl.txt b/apps/android/app/src/main/res/raw/ebgaramond_ofl.txt new file mode 100644 index 0000000..c1ec5e1 --- /dev/null +++ b/apps/android/app/src/main/res/raw/ebgaramond_ofl.txt @@ -0,0 +1,93 @@ +Copyright 2017 The EB Garamond Project Authors (https://github.com/octaviopardo/EBGaramond12) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/apps/android/app/src/main/res/raw/spacegrotesk_ofl.txt b/apps/android/app/src/main/res/raw/spacegrotesk_ofl.txt new file mode 100644 index 0000000..cb512b9 --- /dev/null +++ b/apps/android/app/src/main/res/raw/spacegrotesk_ofl.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Space Grotesk Project Authors (https://github.com/floriankarsten/space-grotesk) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/apps/ios/Explorer/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/apps/ios/Explorer/Assets.xcassets/AppIcon.appiconset/AppIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7d78dcff044760879ed86ba7d34bebe3f44c15 GIT binary patch literal 23352 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

DCf*n_{K^V8Q{Fcczhao<48jrmkLg{@Gr97di9 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 IS822V37zza!2kdN literal 0 HcmV?d00001 diff --git a/apps/ios/Explorer/Assets.xcassets/AppIcon.appiconset/Contents.json b/apps/ios/Explorer/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..7140563 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images": [ + { + "filename": "AppIcon.png", + "idiom": "universal", + "platform": "ios", + "size": "1024x1024" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/Contents.json b/apps/ios/Explorer/Assets.xcassets/Contents.json new file mode 100644 index 0000000..74d6a72 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_blue100.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_blue100.colorset/Contents.json new file mode 100644 index 0000000..5cf6337 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_blue100.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFD", + "green": "0xF7", + "red": "0xF1" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFD", + "green": "0xF7", + "red": "0xF1" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_blue200.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_blue200.colorset/Contents.json new file mode 100644 index 0000000..5cb27b6 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_blue200.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xF9", + "green": "0xED", + "red": "0xE0" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xF9", + "green": "0xED", + "red": "0xE0" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_blue900.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_blue900.colorset/Contents.json new file mode 100644 index 0000000..fca6727 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_blue900.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x4B", + "green": "0x36", + "red": "0x20" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x4B", + "green": "0x36", + "red": "0x20" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_border.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_border.colorset/Contents.json new file mode 100644 index 0000000..60d0bdd --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_border.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "srgb", + "components": { + "alpha": "0.500", + "blue": "0x17", + "green": "0x17", + "red": "0x17" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "srgb", + "components": { + "alpha": "0.500", + "blue": "0xE8", + "green": "0xE8", + "red": "0xE8" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_brand_mark.imageset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_brand_mark.imageset/Contents.json new file mode 100644 index 0000000..4b6254a --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_brand_mark.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images": [ + { + "filename": "vault_brand_mark.png", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_brand_mark.imageset/vault_brand_mark.png b/apps/ios/Explorer/Assets.xcassets/vault_brand_mark.imageset/vault_brand_mark.png new file mode 100644 index 0000000000000000000000000000000000000000..768e218a9a321d94b1eda741728cbc7f0db3d5bc GIT binary patch literal 32204 zcmeFZ`9GBH8$UcqQz?{^VrVasRMru4t5h2M7?M57l6}zFQz7B5Y%#RRHe(ku!YI`p z8cCOZi!_X_V(iOvTz#JB_52av?+?AI%XyvWvAmD>v7A>$8R+S3*|d8T27}ph@xoan z42Ew6{k35|JRxL!`vJdg^tfQ|jlmQTpuczq>f{#S;Vz$ZW4_j5Z0pX+-hJ@e_Qx$rZjGp!1$VZaq7;GxsM{uf3KA~T%UBj&YD*7 zlHHi&)Sq&22$U z>S$bwWW9AZ-pfN2W3zKyWwyg!#}R`O9s7z{&~YDER=R18rhPL!HXkm3;jx)MO?#R+ zow8{uX1xOs#`obyJjOMVPAWY8Fl4nK;ipd(DhXnW=;+eY(}M?A7ie_Jc$=+JW0+Ie)AF zCS(6ft1f{LGp;1!gE0$PBGpz!YtF?Z?-G;wF&)~Q@R+<>HB)w9%+nA$=WSyYFJ@d? zw};23I*qnyMo#Qqp0l#D4EXJd2~~FhjmIX^CxTTA8K&H50T!&~M|ZW3FqJCQtB6=z zMb*{VjA3p@g;=E61X!`?a+baRT41s2Yv}uAxCJk@sP23enXR%8dYP z7G01&`6{#!QOyIm`XDT+odS-ouAcxz3gXtDZWpd~oz2`bs^%iKigkB@3rPap^B ze#b}0_%Ld=sCYw$#|o+KGnE5EN%LHu&@`X{8}+NDcrX6KX*z_xllBQ{V^nNKEFQz;UUE1uF zn#In>;eM!mG)bcMDdIO^Tu*}ClAmG~pL$ufvhV7|3i4o5S*Q%ddB{gv_<5}A*7h7L zMf^I9>rr%RQvc2L;WwP(g>ei<*B(8{)2y|cy%Z-{BBD&Ul1CTr)34*P(O7+UD``6A zq~!k|0kQu4z7HXskLciM(zVlkWF-DHB~iVpZ#Vtx(Xo0^J#p&$O%kB;3i&g-YZ|J$m*q=}U-yE+ay4?0W{(=5TofY( z43Z#;%+~Z9Tnigh6!7suHhsxeQiSR6!`I->05zhn|8hO;}bXRPiIj!ITT*S<+L4N=9{H!T<8 zUo4KGYe_&zvTf2dAyf7)+_ihF<%|{(LY|cPnvZGMyLWi`Wls^~?cYb}t}5BCSKbEA zwrE`+KZXp;NS(n9IHI}@_NWan|F~MfSVfoWpi9O6l9V$3zuohNoZAS<%@eA60vz_< z-=JZk0Pojo6@(dBLn*b|uRN=ojg1j3IbU-Xv{*zX+lg*6Cz?8E`^q>?$g{qE`J>nw*g!Z-|Zy#ZdSRDYtxB0U%D`~h1 z2|^)bi2AmD!aAr3KL=~at56!z0mBeaff+3Qvg4;6)Exe&!8%k~#q0u&wpW`|hw)jA z%iP!&EkMiPJ$eog2NM5Z4f0Yz1nQes(i#zW8vkG7LK!C$)q#e3=2HMzdqbQHK3ND; zej5<0<~Pfc%g}bsoi_240J<`Lzs(QRQRzskz~StogUayk+ywNTPB>@aCC;kX%O~=f zUl+#@WdBqBk2v;ZKnUu-S0u4M6o9ts$fY*&C?c%uG&iEsf57FaGQ09*cAdt&i z_Nt`IkP1<9OneVU(Hmh%v%P2T1p4yWgx`A17dq6f+?dPe?4+eWfUs_S0WbdUrQz*- zHt2oLfIx(k9UwCdWb2u$yZUVK&BQrL^k{H-=uKaQ zQ=5%QMG{HBPQ-k^<9sFjKN-cAu1k+ly%xF_egceOSCyfh&UCKXAWm4V4 zjZH&PeaGd{NAJHQOZ1iVSlffK`2{A`o~Rl`FpX=p4y=6)y2LGQ#k2vUm`d{@2={!1 z&9EG)*9TRCh$^wg%G%P?XT!buz}DG&?hin&!yiE|!kmjVyL(&~`Ri3nC<2&=x+^I9 zn7av1J5BvZ$7v<_%2ED|OjqGXqP)1LR1F#$h zK!p;xq4D0aQ&9*Hs_aF>FFYM*9SbMb@#{*x(>Ydu9~Rfcx|tqMVurT7Za+=VAjlVV znm0#vN{J>aOW|&JLMqWg7e}F|w=TPoV_Nnmm)XiIl9AICP*tiX@G<5;WBK9jH2N$WekF?%gzn<^V!hG z8l^?VfC8G3uZlKGnxr|v!>^XKXf(48|Eq#&>+ht;nE)%k?V@OthqGFHd2GbMHEq2a zMyyUXQl6Uvcnh@(OO9BrC`9cHcv>K5666AEl_v=)VDd^o4p%>TKVQk&3nCTuLO`35 zY7MJz_-s&W5TZqsq<|7bCtku1v4S}o25F8y!b+?$8vQ3z1+%_LRydUG(;x4hIMhI( zpTgJ-qwgy_(lo9B%WM!In+Eby2Ku$BLS=B1eB#COO3S2-Ky0~6p>lqDPp=>?#R|Ut zpvGWa>Hx`D`d}NTBrtErm|lMyX-O zY}Pm{$O52nEU*URj*D&)h;9)ckV!rD!ThfYnZ78xCs`dn`CWT6!i&mc3&0?t3`Qvx z!p3_pGT!@xmyHBQ21OgyGLNF8=jJHsX1Ib9xT_pLE>v}?f^#%Oo9S8e#mA4YOl&L^_HslUrO${3MV(UNYjN(H8t@YmLJ&D8cFUru;FJY1(*^mdJU@6uk^X! zsL>eawj;3ivn{d$Mc5weMy^e??IrA9^D=;;{F zKZqk>-^Ls4DSx;&*{kNlnx%Rr#k&A&@hY7D5#Y|ejv`ZTmflCS^!NF9i`NjxJ$9+z zu|VT0?xY;+JVTHC4b^Eq*#GC?q%=Evrj7G{jXhOspzdXmNSKZ1n4mK30$(PFpHd|F z3E^Wd-3WDZ?t+GHGoI zER1P;3f9e7`G;G6TEQw_%0$ORs{2#3Dvi7MU_1BB<)y!Zmg*a!cGc0sikd(3hGUBAln&C04GS5wc8(4qr+kOlA#}=@ zMTRu_g5>*S5z+OX?(Z~Q3204lm1XJBqD`TGUl+=Sl9)-G zFjhY{9Qe?xeG&?5J&9U$g&O)H0vX z#gcZS0Or~OfayMqS>d1bH1YqfzokVktzO;@@$=2cLn?Zj!J$=(<3cT=iD4dHF>F}a z7gXqER8>)9wlc|EBlyv8m?Ma)rGbWBg03QNGyD6m!P6!0x6h=o*7*mJfAa^aAL`GE z&CxgoBs853LAYtj#GTbQeQwc?T$9E7`bbh?-xnW-TC}$bISn{8S<`qkl#qG=i`lAU zH1ClU+;;CFU1Nc~(h$L!uLEgu}xj zfxtRH(JJ5^#T7(e39@gzg^1I33bKl#1f9DC2kWqy1h7xE_i)xyT0+eGg<$e`j(tY> z59VtJhBh}FJtrMq;BkigAb$E>z~$*9Y(<#Ddh^w z&0wREe`U$o4ri!h0ywTn2JqaO=KNKApUB6*V_aR#5?xFx&^S1O(w%V2$T!1)0O{qD{23FEp475e8NLO`^6UIxAD)h&?dCSr_A6k!sQ-t3MM zZ&dcj=rw2&9GC}uey5vNyF;T(xxjq_j`)WB`Lfx@9?fwVZ+Vd`P@k`v>~y_S@a7Xb z_d@kvLNaM{P*5`Mppy5ni_L>cLj664V=9b|R-aQop=&}p3uyPtV^a*C3T^`gdO0th zd{aUJCXn%IFCVh4-;i{p>k@{!9;&i=^SHub=xevkgmWe{wDUUHXaX;;3(jVYqpHUO z*4D_MIc=zabx2ZRfzZPw_g!F}2~zblJQn~ddrx~1GheKoswb-X*NTt9!xcK%T|ZtR z-KCBc^K|OtULK{}5JQ@?ub`o-wCJ{A(fce=@NDs|;E+&fPJv1WR0jrbh!EAdqLNu!&+_zxLj?c7y6r1XfQEE)zDwqwTCdbmFl`RWD=%+m&ZU4C$2qb4M zU#{)d4_v4s)DK0~thDf|#8EeC_Tit6=Ciezv)!*`7D1}Qj00|L)FwzP4&+~e8xB9> zay}xtc&7>4_=j6oGS<=M>Nh15l>2nV)C|%_=HY)aX4vc<<)60MGt=NMEUfo zJ9}}Cb05Sm(kyg41&FWuunuQabsEy7d2H?^lq+hnxo)H&cR0&;jH8Sis2vQ{J+vPA z46w9mruCi1*Y95R;O2lidRpn;Q2#PNmDYoD)C_0=7^wBxbOE9@6eR@kc>ZXgf8tOK zLZnH>01hugm)sG!WYP>Io>i4ior=jwEyo^-YxKVRzY^Db6Q21q;0)SvDs^ZQL)7r~ z>*wP*p8!s;BNTcEG0e+=_@YiI4|DPFQB$S@c%TFC6wY?WZ(Kv&-*Gsld|P0Uhag7p z&PLb{PvE`<6j40T3|%#9;@28JtV(Kq?ulvo7ra)P{zL{z9L@h5d1nfp7ONZoEMF%_ zL%6H#1&=7T;*7i!M@Kj(kt)=h*|a{3v;Z*C>;&g4f`xi-ARFAF)O;5$@QS}nKK81) z++X1KG;^}ihsJS7$AYkAyHDunLG8IeK`$2Hwd^fty3jPCU4Li!nt~2zmg7MZ^K?T? z4;13At$VNcOX9BS_Gm`@I@UcwPetu~7HlU`(TJUJSSsZpV3CLJCKW8BIfrQ*A)7-I z+ptBuVslpa>vkuNhNJ|i)#CC0iBf#Y-KeXU=#8fRyKw7lQXy>eG?!SUAvtMwM$cj0 z-lU1Qe`BG;7i_;6;7opwzF^V4u(g6fNqwt1Ffb z3nkUE!-0A=roEmpq40Rfxd^$_bw7m4%J>b&0&n;5~b*Sm!GomRGORQVWkM z+%%YJ3eljouNQsoj*_8@;T%l^#$uxWR|KD}Gm{SZ!qe8MNF$j*?^5#Js&~d^g5XsX zn`ec*dU0oX;Y@4rj61-wXbbqQ?V~DvCltut6{)kTGVJNul)q>T+fQS&wKgy>0shCn zGqbe6v*f{^ul2dVTlRJw6uOb}tK@3C`=U1w^AUssjPg#${v}01%W*|G-rt3sz*zzYaNP$XzJT}UR={>1CJhUC=+GRv)h$}(Ob7a5 z7{V0g0^)9U6;ccn9~ZoBPbuG8)VEqn=>QoA^$6Ws7&Cb=bh>2ws|WGJRW7I*%_22( z`@pJ+{+C*Lf-tiGLLQs;PR%mzHm?cED^SL-6Cj&$(>V&@&Mie4R=|ToFA}otMq0Qmu_BWDUxnqbfM3R{wfXshMDX6G= zc4Uvmpa}Aw=DwL#_h-e6tB=5dt(>V$mr+pP&SN74j*;(s`jT4Ma01CUW>vh`WM7UT zsuH+gIZ*y#@=k#T@+?Sm5`gq&Pp&&iWi*%DrwLN2khpWmYPdHh?-+2vhe{(ZEila?KhpG!IU8KnAaGZ zC^32a!C{CRft$s73+8(mK++e(-F`lsYh{j8g^}O9Avuk+0~JaHgeucB#1SpMef~Z6 zhm&PJ1+!+`*H0k>;vl9I=bg!woc-uh0T9j9QHR?UKTTY`(rRTkOr`0QDjL*T5=R6odCvNhc9{? z2|D4CwX5OYu8$8Zr1A4G^&kow=Ngel8Vr;=_etf-nWIyR>tmac+TrHmqrC--rQpM# zP22oJhhfzEUYdtK^DavUiTC#X8G}qgiQtfKWl8qg5UL6gH%s?cw9NKxt5Yriyh795 zg}Yrgz$rtPjK~XUC5>r9g_ejgDJ+ybiH<|tvySoi^>h#&3;Mi!;_^OxOue)S)Wef3 z4h9f)U*k*}vq%%VNIr~J)U9tYEbFFH5mo)xN(mUg@X9L#V(cbz(jOlzr31G{O{_t` zJ9{_onm~0e!xf!$ zc9`wVUCltdt7Fr3oJ|M`OeaMH zXPm}cV_FrAJBluWNCj%fTm}c&yc~9T;PsGm4AFuZc#b88zyOR%GXwr~(IZvkhXc1S zv389HA?m;-Msay=n&^)Kdxxj~%~EIYgp?RvIYn(*&7(kFZ*fBh?wik}fp8lDtmb#4 zmFS#=u2C-?wNVk9c$P(Pj|Dpk1l2N3TQ407je(gS^_4a)#HnkpNo>u~vU2pDYE#`p zs$h(F^gB*aHsd@u3k;tK6ZKG$Y--$G0_TG?yQxvf>oM~Pmblj8L&7u9!&Q{t$N=Z5 zF-r%ZwV2Nl3HN43-7@4pfV}=~7mf6HxWqgOa)0!raU76gh#4;-w<~oRZ*n0A2SJuw zs+=$bLtoya8?(>&mcKcr9Ad*o#kEH0vbYW6+r9nLITM74izO6ydT{aLPbeXyVW=Um zO5}cxpKj5((tC86%Ki15^OIn4(yUrndE%m`2l(q8l<1sqggL4;*(3Jm+(g!=g?1fm zSg(f(Hv*0=rV~SmkdyIYN`KvB~CEpCrEu;p_KfXo8$HpQpcQpQ2be!Nng@pxH zD}bI3-JSV;-+Z$8?N8S-$SnT9Gw`Aq))myzf*R(%dxoi>fAw)@L9$8 zPkz_bcPWR;!P$3eh?W(LUq|*7oe3eL#s4wCF^)OP@fhEvgOg09N*itiXFMbPOEE$~ zVYx05W&uQmh}v79HmM5eL2vxa-yfv6XHuKrzcXfaUezHf7id5umRP03od?qLjo64U z+EVb%hyQC`Mz{f@snqK?DSTL|cbFDJ7Zjt~cduL|*P;vW!otzmyjAJpKsk*LXp_BI zO8&a!r!9L&YLIu(lyvMkG{QVorNw>gyw;+X!;wK8XmQ|WnOSO9c%#@@9Rf`=rUSZF z8{^(A3XF`dF8k{jz&6k`uZ%q4Mj+aM7x3dc&enGO2u*@{e~HZ9#3Q@QTjo+tX96ic z!W4gFLu~Rv-JUQ)i90u*qn8oxak{wx4VEV6L0UTrg8xpsX>a~$gHC9t!IvIR*I3t9l1TRRp?GVCAUbjfl5(8z*jD`R$#7YFkK8W!vtP=i7uw=h--7 z+ASa9SatwmuDKTelw54AoHic(5MAj`@23T;;5QWY!f2rlQKYrMq&9ypMkb6{-+u(s z8E)K6blE*b(*z5ZldCd6&P=BwcQqIPd1Mcj`Hr>|3LKX~5dvEwxr_C#jF$8xKFDSd ztU9c=IErI0ZDGCLxZ=RY0;p4N-6S`+?46IYrdf6R%pYMkbcPG&Mf0WJUm)mUzn_Kv zoWfmc(Xt_^moXYggqQ2FDGiJ07`HqcG!8#y5@K!XoJgRI9XF70)&-oDM2o9FF%ki+5K_sB3;8_*S1<;H1B(h@KsOTd=7mmcxVe|4`_y zT(l);aMCiunfDf4xh`n4{Qa<=Wp&Tr+I;c?vk%EkJ?aSQc~MaUMR zpW*JpMozBHN32H`UAC$qa=`3hd*SC+Z>uWTK{C(N6p^vH(@30x z`#tPaSH>DiHKG_U*$>0@;|Lq^oYTj{T?bV>`KElsv70SI2 zSHsZ_wNqwa_QR!^O*Pn$CSkT>&TYzCy7r{PT_Isw2u_k{cA;62W{cw3r zR0N8$z|}ig-LL%qD8W62ZjG^J6@@*rhZ#k&s*yv5 zYbxJQLa7Bt0SmD76XhQikSZ75ofd;p#DsETLMPi;gG>?Epa++O9{iz~;MkxB(jO~W zcad?mwUP(Y+B!2SV3(8BVyBH+A~)L`E$P|N6^habAqA9 z2^bzn#OY6^aCg!ux40GrWd{s36r_6#O_B*o0(Yl(w*K#RoPg(Z4i_1P!Zf?D-RJ2_ z2+&+p9574YVhl%Jnmsm>i&O)biT>0~)!VYxH?n8^+qskiNwOQpgBQG$El68^HTor0 z8|!F0r(VSfaM-oOHL+b$U1jAvx^@?xWa$)`Vv>)V& z3>4EWE6ZnieRAJW@M#xv7N-fx_4_>*n7L@j&E%YdPkG{`=7zAe!ea`G-rnpUR*{^B zN$)eKRNkWZupbF`MZMH%^uXBYLGwktPPS85G^LaC2sv)zXx`$oM&iZ}ty1i{Qizc0 zOjq8Aa2niRz*n8uTZ2Ynps_(7hGgUS_tV)#wixb?`m8=7LPy$qXu`ts`69xh5i$d7 zABL^QO)2c)wwve>r=-Lq_!lxba5Gw@8=Eg_yrRd=s51}c0ZAMMofmEVDx5zK$c|Tr zus*Re(q1fPg0sn~f{|CSQuNjDuWS2Gs|W2M#wbwqekqgD4S+-NkUZ8}s#hlfiD z#?$Y>B!zEYEOO(g4P$fM`h1S`KlymR)8(l%zKQdsvi25k!Wif@6@6W!`_-{g0{VK! zGd|6+P|h4}N%`1&hoI_L48z2-!md@q2(Mq|HX=$OsGzzrz6XAmFGFN9-*cWgIgdnn5g6^;lNOUiXX@M`ObftKh=? zXk(?ci=IfGYKQt-mrr!VPG|)ab+xe0_-8A>Y`&$#G(M z&A>>??P-=ZTc<)@x6`jZB4ty3<6ppi@yYBvhaO&CHpTsOK}_vmTehVM60tLgWJ8xHZ9QC*nozUq4Hy#+u0TOw#1?d;7_9x_*hr+SNyR;D_``(dsOH^2&-9nNw$O z7VA!GFSLTT{~lhSd!K5h-sM6QH?f9FVMvw4<&0nKUl-CcbL%?<9Of`VD}w9$p7V*2 zT~YF+#%RU4ReD*rZ%67Ob~e1=%s90|N=-C7CB=32u`z2}Jh|{ViB#AJjrd3J z8?8^a2%7Xr=n(yAP?>Ll4~54D#tFJDRxnE4V)fNW`4!-+{U-j%Mb)RZrxb7x{GUS# zPcMXQQ5hyH#Q3G1OJ%C$%DOLETx$*$5xE40LezA~(^`zDfw$WisqB_BepC z6e_gef!T{?S;H-^vDR+*&A;46H_F3|xvBA1>ZOG;h;D~qlio}U(46>q5$7}VVauwX!bnia%$jaYMHl>GPS z%dqOX){Y47BnKkI~ zq(w_?@F~4Nrv?Rb)kQ7|5|l!Jet|(XjE3~SNtp;q;%;Xy*tUizN3bt%FjL{jnX;D& zQdiuP58A=7iGZD4MsIxmzQaHu7mSyyamA9h_yM9gr;4cGuN!T3}WkOt8D*cbU;yesrS`r%JHA0JLw@gdVoe<^5xcdElWge z2`YbE%5A~u3jNk^16vW*^^UfA&7}7HJ|%Pnm&w^-o>_9U#>(=|V*P*w^;M%{ubJl} ziu6LI2||dosXkK@2;S4zq}FOBIFVvFl^dMD2n=O0_=TfMF9o*>7v>i9`8-mY_IaL_ z`9<=odxVfOq1E!>rm9bpK4uSG6fK{ie;Ey=9jPtyP)@!P!oll5|hF#W(M&nW*VAS%=1!8u8!WiU;8rJeC!{~(QP@(ZS|(knujRjo7mXqp67NBo0nxTWl=Zx;{R6HLs za4o17pnJ-qLo&iN&KdvZHxII^-TL^;#;uIh%7F;i2h_pAnNpN zfc<+pqiQvw6je{_0+uEE@uzR+aH?RO+7NuxHr)UqR6CCidl*<0HdN)`TBo>X-n(y@ zDzX^Z8r0aZU>4U9Aa;0SGeI}oT*{p$M+$;j%)QF<+;UE#clid3rggYON$wQqfP7hd z_RH#GsF1y3{#Ds%;{NF=(Rb1XxkW1ka&c27w1)q&-i5pKJk|;C&)rK1Kx|!-HHs$S zW8%DAe@iu~c~tgz>0TpT2{CP5qGX^%+nKW0I<2!iyTj#!-@5O}K z+ydk3YKl{X>ftGS!rfn$;oiTDg?8gY%e*|u5pW@4ukXs}n^DUMm+xuT`!-?dX#eC{ z=@!8p`1ZoLHTZ1Dj^n`9Uw+)w5Ol{gTi!YNeq__%rI@}eN|)>OdApbMC~O^+irUsiQ&U(Rt_ddD?lv43jZ>bILq%VfY+^>~7x30$H>!(Hlm zpVNj!(AWy<%)2o*w^@hq0pto!EaC*sM0H>;!>QFWuc>h_;+QJ=rfw3d5#Jqc-8=-L z9(PrE+xv3s(P$mg8uWAHJ05RP`t&}f@3p3>y8JM;cX|pr26TyA>OyM5+-heq;JOHJZ( zG|bia4^!3W8nO;fG%PIly82+0-fE%W_u4#%FO|xfhTta`w$ozMe19kJr`_^ej+WF~ zh6{O#6CYk$)EE5C=UC&rRKWz>K0U*r0{pv?J+601rtK2A+jqNL;47g0rve9m1Qk*| zTf@Ah#HjpwXS5tA3(VA?F-!%QY^H+H5hxdJ4TAGWuUVPhv8Q?ed=o|B(h&igHbmet z35#mRs6{5Uj%lQ1yk$*Yq2sZWpw=$T=1*|=-UJ|Sg&{$JhZF)r*eQC?d zKcAoYY_=`YI=9#1RZeH3sG>{#k>^J;ePg<=TynK@|K}gynp#aar@IfPRMo%Gi6}0vFJ#H(w3Ib^LtO^nmfPz7`cDK*SNunZ{X*+FpXNwq%tEqwZ573 zhH8h}dwx#DyKVN^;c?U>#7h);pwpA!VD*B&ut{Dx+FP;hPVY}ivTViYQofu=lx=9EyF6i#Ess5M+ASQkEwil;`1pib`?xgct?UJvh;Y1DIwui|ga z$jbO0PRZS{oh8~iC4D?UKjeNUf90Eh?-+9HwuvQogNKsmrkU0svNSOPAH~+A^}T;? zdiqtSxTwIZ%j0{Tlhwn#;nlB+bu#kgnVSRqY}&^6(C*BI351r0vb{2Ljt1V&IX}j? zEcNU7fR+tOmW5mu!pPWpS}BfQ!x{|dr{c~?yI~eZ`VC(eq-;^y;J^O$U9rF(HN}UQ zngtoVZQu6(>5ZxyZvFYeknmuAFu#QUWe3x;H+q{N$EOTC+t9~_FSUxR2&(*>JTIr% z5K!L~uDP}Q+DpOWGbB z)w5f<`JiT=Vg1(m=+N4MPnv`BYrX=$^){XbZIo?hJ5(g1r)d@k)k2+z zTsnD7Hn{VN^I$Rdk4ke=vUrsE3-;(m;)G-qQ!dp9gDgzkL#8mO3n~Ro1X!;EJ8(+t2>%YT9JK zDAvJ;yi6amF%#yVa&sy%)ebJ-74adY3eT-_r&>+?|MD#bpYCxh0x@8UMD>C zy+jWdohht%5>@r13ga@6vUSJ1$MxYamP*2pyjPCeA7Ui)VE_HXhn-p`X3;!+o>pOA zr}Z``R>gOme!lycAZ5kp@crMVk?^nSwpm9WVA*_F{SoDZSX zo5^9e)brtT6B7CK4&77e*UnR#J*)HH{8{_QN6f;gPY?Zuq&#*s1~Ko~-h^?_H1XAGll^f;%0AtH4DkU|Fw+xGTK!J}nDez|$%l5vHwafcB0r#|5T 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 literal 0 HcmV?d00001 diff --git a/apps/ios/Explorer/Assets.xcassets/vault_chip.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_chip.colorset/Contents.json new file mode 100644 index 0000000..cad2bdc --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_chip.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xED", + "red": "0xF9" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFA", + "green": "0x86", + "red": "0xC3" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_darkMain.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_darkMain.colorset/Contents.json new file mode 100644 index 0000000..0a77514 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_darkMain.colorset/Contents.json @@ -0,0 +1,29 @@ +{ + "colors": [ + { + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0x39", + "green": "0x39", + "red": "0x39" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_discover.imageset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_discover.imageset/Contents.json new file mode 100644 index 0000000..104b76f --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_discover.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images": [ + { + "filename": "vault_discover.png", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_discover.imageset/vault_discover.png b/apps/ios/Explorer/Assets.xcassets/vault_discover.imageset/vault_discover.png new file mode 100644 index 0000000000000000000000000000000000000000..d9652f62bab3e1db2cc1bf4baf3f6b9498b69543 GIT binary patch literal 559873 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≤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⪋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

3#(%bms*S$ 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 rmJ*OK<__NV(7|7WZJ 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

VCc$%qt4{`h-t#Fu@a!-s#?*SC=uu@9Upk<{OrO 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 literal 0 HcmV?d00001 diff --git a/apps/ios/Explorer/Assets.xcassets/vault_discoverCardsBG.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_discoverCardsBG.colorset/Contents.json new file mode 100644 index 0000000..150d5f9 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_discoverCardsBG.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xF9", + "red": "0xEA" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x39", + "green": "0x39", + "red": "0x39" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_green100.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_green100.colorset/Contents.json new file mode 100644 index 0000000..bb70b44 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_green100.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xEB", + "green": "0xFA", + "red": "0xF1" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xEB", + "green": "0xFA", + "red": "0xF1" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_green200.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_green200.colorset/Contents.json new file mode 100644 index 0000000..5f1e80b --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_green200.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xD2", + "green": "0xF5", + "red": "0xDF" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xD2", + "green": "0xF5", + "red": "0xDF" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_green900.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_green900.colorset/Contents.json new file mode 100644 index 0000000..03b4433 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_green900.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x0B", + "green": "0x29", + "red": "0x16" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x0B", + "green": "0x29", + "red": "0x16" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_monadicGrey.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_monadicGrey.colorset/Contents.json new file mode 100644 index 0000000..84125d6 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_monadicGrey.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xD9", + "green": "0xD9", + "red": "0xD9" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xD9", + "green": "0xD9", + "red": "0xD9" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_offTone.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_offTone.colorset/Contents.json new file mode 100644 index 0000000..3e65cd9 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_offTone.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFB", + "green": "0xFF", + "red": "0xFF" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x12", + "green": "0x12", + "red": "0x12" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_purple100.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_purple100.colorset/Contents.json new file mode 100644 index 0000000..2eb34e9 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_purple100.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xF5", + "red": "0xFA" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xF5", + "red": "0xFA" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_purple200.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_purple200.colorset/Contents.json new file mode 100644 index 0000000..40c3a6d --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_purple200.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xE8", + "red": "0xF4" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xE8", + "red": "0xF4" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_purple900.colorset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_purple900.colorset/Contents.json new file mode 100644 index 0000000..deb21d7 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_purple900.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x63", + "green": "0x09", + "red": "0x3C" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x63", + "green": "0x09", + "red": "0x3C" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_star.imageset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_star.imageset/Contents.json new file mode 100644 index 0000000..cf488a6 --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_star.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images": [ + { + "filename": "vault_star.png", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_star.imageset/vault_star.png b/apps/ios/Explorer/Assets.xcassets/vault_star.imageset/vault_star.png new file mode 100644 index 0000000000000000000000000000000000000000..99ffb121bf478c5aaa1dfb5b3bb2e9f3f3b64d26 GIT binary patch literal 27828 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 J(Q3}Y{{n#qe1rf1 literal 0 HcmV?d00001 diff --git a/apps/ios/Explorer/Assets.xcassets/vault_vault.imageset/Contents.json b/apps/ios/Explorer/Assets.xcassets/vault_vault.imageset/Contents.json new file mode 100644 index 0000000..e51a26c --- /dev/null +++ b/apps/ios/Explorer/Assets.xcassets/vault_vault.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images": [ + { + "filename": "vault_vault.png", + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/apps/ios/Explorer/Assets.xcassets/vault_vault.imageset/vault_vault.png b/apps/ios/Explorer/Assets.xcassets/vault_vault.imageset/vault_vault.png new file mode 100644 index 0000000000000000000000000000000000000000..1df01bcf0bcb5ce6dc8a5c9265b400b6a409809c GIT binary patch literal 37551 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 z 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 nKJ$7BEr$QAm|?0UyJcVoid var browse:()->Void var body:some View{ScrollView{VStack(alignment:.leading,spacing:20){ - Text("Your DNA. Your discoveries.").font(.largeTitle.bold()) - Text("Explore genetic research, match your variants on device, and understand associations with private provider-based analysis.") + VaultHero() Toggle("I understand this is educational research, not medical advice.",isOn:$store.acceptedDisclaimer) - Button("Import your DNA",action:importDNA).buttonStyle(.borderedProminent).disabled(!store.acceptedDisclaimer) - Button("Browse studies",action:browse).buttonStyle(.bordered) + Button("Import your DNA",action:importDNA).buttonStyle(.borderedProminent).buttonBorderShape(.capsule).disabled(!store.acceptedDisclaimer) + Button("Browse studies",action:browse).buttonStyle(.bordered).buttonBorderShape(.capsule) Text("\(store.variantCount) variants • \(store.results.count) saved study matches") if !store.results.isEmpty,let insight=try? Core.object("preview_insight",store.results.map(\.raw)){ - Text(insight["headline"] as? String ?? "").font(.headline) + Text(insight["headline"] as? String ?? "").font(.custom("SpaceGrotesk-Bold",size:17,relativeTo:.headline)) Text("\(insight["protectiveCount"] as? Int ?? 0) protective associations • \(insight["elevatedCount"] as? Int ?? 0) elevated associations") } - Text("Associations are not diagnoses or individual health predictions. Odds ratios are relative, not absolute risk; beta values describe trait changes.").font(.footnote).foregroundStyle(.secondary) - }.padding()}.navigationTitle("Monadic DNA")} + Text("Associations are not diagnoses or individual health predictions. Odds ratios are relative, not absolute risk; beta values describe trait changes.").font(.custom("SpaceGrotesk-Regular",size:13,relativeTo:.footnote)).foregroundStyle(.secondary) + }.padding()}.vaultScreen().navigationTitle("Explorer").navigationBarTitleDisplayMode(.inline)} } struct BrowseView:View{ @@ -87,16 +88,16 @@ struct BrowseView:View{ Toggle("Semantic search",isOn:$semantic) Button("Search"){offset=0;store.browse(query,trait,semantic:semantic)}.disabled(store.busy) }.frame(height:230) - List(store.studies){study in Button{store.selectedStudy=study}label:{VStack(alignment:.leading,spacing:6){Text(study.text("disease_trait")).font(.headline);Text(study.text("study")).font(.subheadline).foregroundStyle(.secondary);Text("\(study.text("study_accession")) • \(study.text("confidenceBand","Research finding"))").font(.caption)}}.tint(.primary)} + List(store.studies){study in Button{store.selectedStudy=study}label:{VStack(alignment:.leading,spacing:6){Text(study.text("disease_trait")).font(.custom("SpaceGrotesk-Bold",size:17,relativeTo:.headline));Text(study.text("study")).font(.custom("SpaceGrotesk-Regular",size:15,relativeTo:.subheadline)).foregroundStyle(.secondary);Text("\(study.text("study_accession")) • \(study.text("confidenceBand","Research finding"))").font(.custom("SpaceGrotesk-Regular",size:12,relativeTo:.caption))}}.tint(.primary)} HStack{Button("Previous"){offset=max(0,offset-50);store.browse(query,trait,semantic:semantic,offset:offset)}.disabled(offset==0||store.busy);Spacer();Button("Next"){offset+=50;store.browse(query,trait,semantic:semantic,offset:offset)}.disabled(store.studies.isEmpty||store.busy)}.padding() - }.navigationTitle("Browse research")} + }.vaultScreen().navigationTitle("Browse research")} } struct StudyView:View{ @EnvironmentObject var store:ExplorerStore let record:Record var body:some View{List{ - Section{Text(record.text("disease_trait")).font(.title2.bold());Text(record.text("study"));Button("Match my DNA on device"){store.analyze(record)}.disabled(store.busy)} + Section{Text(record.text("disease_trait")).font(VaultStyle.heading(24));Text(record.text("study"));Button("Match my DNA on device"){store.analyze(record)}.disabled(store.busy)} if let result=store.results.first(where:{$0.id==record.id}){Section("Your match"){ResultView(record:result)}} Section("Research details"){ ForEach([("study_accession","Accession"),("mapped_gene","Genes"),("snps","Variants"),("strongest_snp_risk_allele","Risk allele"),("or_or_beta","OR / beta"),("ci_text","Effect interval"),("p_value","P-value"),("initial_sample_size","Discovery sample"),("replication_sample_size","Replication sample"),("first_author","Author"),("journal","Journal"),("date","Publication date")],id:\.0){key,label in @@ -104,14 +105,27 @@ struct StudyView:View{ } } if let pmid=Int(record.text("pubmedid")),let url=URL(string:"https://pubmed.ncbi.nlm.nih.gov/\(pmid)/"){Link("Read original publication",destination:url)} - Text("Educational interpretation, not diagnosis. Study ancestry, cohort size, replication and environment affect interpretation.").font(.footnote) - }.navigationTitle("Study")} + Text("Educational interpretation, not diagnosis. Study ancestry, cohort size, replication and environment affect interpretation.").font(.custom("SpaceGrotesk-Regular",size:13,relativeTo:.footnote)) + }.vaultScreen().navigationTitle("Study")} } struct ResultView:View{ let record:Record + var palette: (background: Color, foreground: Color) { VaultStyle.cardPalette((try? Core.object("preview_category",record.raw)["id"] as? String) ?? "other") } var evidence:String{(try? Core.object("evidence",record.raw)["label"] as? String) ?? "Research finding"} - var body:some View{VStack(alignment:.leading,spacing:5){Text(record.text("traitName")).font(.headline);Text("\(record.text("matchedSnp")): \(record.text("userGenotype")) • \(record.text("effectType","OR")) \(record.number("riskScore"),specifier:"%.3f")");Text(record.text("riskLevel")).font(.subheadline);Text(evidence).font(.caption).foregroundStyle(.secondary)}} + var body:some View { + VStack(alignment: .leading, spacing: 10) { + Image("vault_star").resizable().scaledToFit().frame(width:28,height:28).accessibilityHidden(true) + Text(record.text("traitName")).font(VaultStyle.cardTitle) + Text("\(record.text("matchedSnp")): \(record.text("userGenotype")) • \(record.text("effectType","OR")) \(record.number("riskScore"),specifier:"%.3f")") + Text(record.text("riskLevel")) + Text(evidence).font(.custom("SpaceGrotesk-Regular",size:12,relativeTo:.caption)) + } + .padding(24).frame(maxWidth: .infinity, alignment: .leading) + .foregroundStyle(palette.foreground) + .background(palette.background, in: RoundedRectangle(cornerRadius:40)) + .listRowBackground(Color.clear).listRowSeparator(.hidden) + } } struct ResultsView:View{ @@ -128,12 +142,12 @@ struct ResultsView:View{ TextField("Filter saved traits",text:$filter) } ForEach(store.results.filter{filter.isEmpty||$0.text("traitName").localizedCaseInsensitiveContains(filter)}){record in ResultView(record:record)} - }.navigationTitle("Your results")} + }.vaultScreen().navigationTitle("Your results")} } struct ProviderConsent:View{ @EnvironmentObject var store:ExplorerStore - var body:some View{Toggle("Allow matched results and profile context to be sent to my selected LLM provider.",isOn:$store.shareResultsWithLLM).font(.footnote)} + var body:some View{Toggle("Allow matched results and profile context to be sent to my selected LLM provider.",isOn:$store.shareResultsWithLLM).font(.custom("SpaceGrotesk-Regular",size:13,relativeTo:.footnote))} } struct ChatView:View{ @EnvironmentObject var store:ExplorerStore @@ -142,17 +156,34 @@ struct ChatView:View{ ProviderConsent().padding() List(Array(store.messages.enumerated()),id:\.offset){item in VStack(alignment:.leading,spacing:8){Text(item.element.0).font(.caption.bold());Text(.init(item.element.1)).textSelection(.enabled)}} HStack{TextField("Ask about your findings",text:$message,axis:.vertical).textFieldStyle(.roundedBorder);Button("Send"){store.sendChat(message);message=""}.disabled(store.busy||message.trimmingCharacters(in:.whitespacesAndNewlines).isEmpty)}.padding() - }.navigationTitle("DNA chat")} + }.vaultScreen().navigationTitle("DNA chat")} } struct ReportsView:View{ @EnvironmentObject var store:ExplorerStore var export:(String,String)->Void - var body:some View{List{ - ProviderConsent() - ForEach(["Overview","Health","Healthspan","Top traits"],id:\.self){kind in Button("Generate \(kind) report"){store.generateReport(kind)}.disabled(store.busy||store.results.isEmpty)} - if !store.report.isEmpty{Section(store.reportTitle){Text(.init(store.report)).textSelection(.enabled);Button("Export Markdown report"){export("monadic-report.md",store.report)}} - if !store.reportQuestions.isEmpty{Section("Ask a follow-up"){ForEach(store.reportQuestions,id:\.self){question in Button(question){store.sendChat(question)}.disabled(store.busy)}}} - }.navigationTitle("Reports")} + var body: some View { + List { + VaultArt(name: "discover").listRowBackground(Color.clear) + ProviderConsent() + ForEach(["Overview", "Health", "Healthspan", "Top traits"], id: \.self) { kind in + Button("Generate \(kind) report") { store.generateReport(kind) } + .disabled(store.busy || store.results.isEmpty) + } + if !store.report.isEmpty { + Section(store.reportTitle) { + Text(.init(store.report)).textSelection(.enabled) + Button("Export Markdown report") { export("monadic-report.md", store.report) } + } + } + if !store.reportQuestions.isEmpty { + Section("Ask a follow-up") { + ForEach(store.reportQuestions, id: \.self) { question in + Button(question) { store.sendChat(question) }.disabled(store.busy) + } + } + } + }.vaultScreen().navigationTitle("Reports") + } } struct VaultView:View{ @@ -163,6 +194,7 @@ struct VaultView:View{ var export:(String,String)->Void @State private var confirmDelete=false var body:some View{Form{ + VaultArt(name:"vault").listRowBackground(Color.clear) Section("On-device genetic data"){ Text("\(store.variantCount) variants • \(store.results.count) results. Genetic data stays in memory until you explicitly save an encrypted vault.") Toggle("I understand this is educational research, not medical advice.",isOn:$store.acceptedDisclaimer) @@ -179,7 +211,7 @@ struct VaultView:View{ Button("Import portable vault using this passphrase",action:importVault).disabled(password.isEmpty||store.busy) Button("Delete local vault",role:.destructive){confirmDelete=true} } - }.navigationTitle("Private vault").confirmationDialog("Delete this device's vault and clear memory?",isPresented:$confirmDelete){Button("Delete",role:.destructive){do{try store.deleteVault()}catch{store.error=error.localizedDescription}}}} + }.vaultScreen().navigationTitle("Private vault").confirmationDialog("Delete this device's vault and clear memory?",isPresented:$confirmDelete){Button("Delete",role:.destructive){do{try store.deleteVault()}catch{store.error=error.localizedDescription}}}} } struct SettingsView:View{ @@ -187,14 +219,14 @@ struct SettingsView:View{ var body:some View{Form{ Section("Research and account backend"){ TextField("HTTPS origin",text:$store.backend).keyboardType(.URL).autocorrectionDisabled().textInputAutocapitalization(.never) - Text("Your raw DNA remains on this device. The backend provides the public research catalog and account services.").font(.footnote) + Text("Your raw DNA remains on this device. The backend provides the public research catalog and account services.").font(.custom("SpaceGrotesk-Regular",size:13,relativeTo:.footnote)) } Section("LLM provider"){ Picker("Provider",selection:Binding(get:{store.provider},set:{store.selectProvider($0)})){Text("HuggingFace").tag("huggingface");Text("Ollama").tag("ollama");Text("nilAI").tag("nilai")} TextField("Model",text:$store.model).autocorrectionDisabled().textInputAutocapitalization(.never) SecureField("Your provider API key",text:$store.apiKey) if store.provider=="ollama"{TextField("Ollama hostname",text:$store.ollamaAddress).autocorrectionDisabled().textInputAutocapitalization(.never);TextField("Ollama port",text:$store.ollamaPort).keyboardType(.numberPad)} - if store.provider=="nilai"{Text("Leave the key blank for one-use backend delegation. Prompts go directly to nilAI; only your public key visits the backend.").font(.footnote)} + if store.provider=="nilai"{Text("Leave the key blank for one-use backend delegation. Prompts go directly to nilAI; only your public key visits the backend.").font(.custom("SpaceGrotesk-Regular",size:13,relativeTo:.footnote))} } Section("Optional personalization"){ ForEach(store.profileSchema){field in @@ -205,7 +237,7 @@ struct SettingsView:View{ TextField("Additional context for reports",text:$store.profile,axis:.vertical) } Button("Save securely in Keychain"){do{try store.saveSettings()}catch{store.error=error.localizedDescription}} - }.navigationTitle("Settings")} + }.vaultScreen().navigationTitle("Settings")} } struct AccountView:View{ @@ -213,7 +245,7 @@ struct AccountView:View{ @State private var promo="" var body:some View{Form{ Section("Account"){ - Text(store.wallet.isEmpty ? "Not signed in":store.wallet).font(.caption).textSelection(.enabled) + Text(store.wallet.isEmpty ? "Not signed in":store.wallet).font(.custom("SpaceGrotesk-Regular",size:12,relativeTo:.caption)).textSelection(.enabled) Button("Sign in with Dynamic"){do{try store.beginAuth()}catch{store.error=error.localizedDescription}} Button("Refresh subscription and blockchain payments",action:store.refreshSubscription).disabled(store.wallet.isEmpty||store.busy) if let status=store.subscription,let data=try? JSONSerialization.data(withJSONObject:status,options:[.prettyPrinted,.sortedKeys]){Text(String(decoding:data,as:UTF8.self)).font(.caption.monospaced())} @@ -225,6 +257,6 @@ struct AccountView:View{ TextField("Promo code",text:$promo) Button("Apply code"){do{try store.applyPromo(promo)}catch{store.error=error.localizedDescription}} } - Text("Provider checkout and wallet authorization use the system browser. Server API keys are never embedded in this application.").font(.footnote) - }.navigationTitle("Account and premium")} + Text("Provider checkout and wallet authorization use the system browser. Server API keys are never embedded in this application.").font(.custom("SpaceGrotesk-Regular",size:13,relativeTo:.footnote)) + }.vaultScreen().navigationTitle("Account and premium")} } diff --git a/apps/ios/Explorer/Fonts/EBGaramond-Medium.ttf b/apps/ios/Explorer/Fonts/EBGaramond-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..eb127af9f263bf84bc7086ca25913fac86d00646 GIT binary patch literal 563744 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 z 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

SOe=dXzqnbE9K8 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�wq?iTUv^tzVXKqA4W=d} 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

oAiw~d>0}V16G1i3LdEp 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 NUQyaQ5&?U|ioJ^k!LBF@ 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%0D#_>tp8W$b2&zC%jcf>Pi^ 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 literal 0 HcmV?d00001 diff --git a/apps/ios/Explorer/Info.plist b/apps/ios/Explorer/Info.plist index a834238..0c2f7b2 100644 --- a/apps/ios/Explorer/Info.plist +++ b/apps/ios/Explorer/Info.plist @@ -1,15 +1,51 @@ - -CFBundleDisplayNameMonadic DNA Explorer -CFBundleIdentifier$(PRODUCT_BUNDLE_IDENTIFIER) -CFBundleExecutable$(EXECUTABLE_NAME) -CFBundleName$(PRODUCT_NAME) -CFBundlePackageTypeAPPL -CFBundleShortVersionString$(MARKETING_VERSION) -CFBundleVersion$(CURRENT_PROJECT_VERSION) -UILaunchScreen -CFBundleURLTypesCFBundleURLSchemesmonadicexplorerCFBundleURLNamecom.monadicdna.explorer.auth -NSAppTransportSecurityNSAllowsLocalNetworking -UISupportedInterfaceOrientationsUIInterfaceOrientationPortraitUIInterfaceOrientationLandscapeLeftUIInterfaceOrientationLandscapeRight - + + + CFBundleDisplayName + Monadic DNA Explorer + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleURLTypes + + + CFBundleURLName + com.monadicdna.explorer.auth + CFBundleURLSchemes + + monadicexplorer + + + + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSAppTransportSecurity + + NSAllowsLocalNetworking + + + UIAppFonts + + SpaceGrotesk-Light.ttf + SpaceGrotesk-Regular.ttf + SpaceGrotesk-Bold.ttf + EBGaramond-Medium.ttf + + UILaunchScreen + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/apps/ios/Explorer/Licenses/ebgaramond-OFL.txt b/apps/ios/Explorer/Licenses/ebgaramond-OFL.txt new file mode 100644 index 0000000..c1ec5e1 --- /dev/null +++ b/apps/ios/Explorer/Licenses/ebgaramond-OFL.txt @@ -0,0 +1,93 @@ +Copyright 2017 The EB Garamond Project Authors (https://github.com/octaviopardo/EBGaramond12) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/apps/ios/Explorer/Licenses/spacegrotesk-OFL.txt b/apps/ios/Explorer/Licenses/spacegrotesk-OFL.txt new file mode 100644 index 0000000..cb512b9 --- /dev/null +++ b/apps/ios/Explorer/Licenses/spacegrotesk-OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Space Grotesk Project Authors (https://github.com/floriankarsten/space-grotesk) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/apps/ios/Explorer/VaultTheme.swift b/apps/ios/Explorer/VaultTheme.swift new file mode 100644 index 0000000..5d42c9b --- /dev/null +++ b/apps/ios/Explorer/VaultTheme.swift @@ -0,0 +1,76 @@ +import SwiftUI +import UIKit + +// Colors and artwork come from the same checked-in sources as Android. +enum VaultStyle { + static let ink = Color("vault_darkMain") + static let canvas = Color("vault_offTone") + static let lavender = Color("vault_purple200") + static let purpleInk = Color("vault_purple900") + static func body(_ size: CGFloat = 17) -> Font { .custom("SpaceGrotesk-Light", size: size, relativeTo: .body) } + static func heading(_ size: CGFloat = 32) -> Font { .custom("SpaceGrotesk-Bold", size: size, relativeTo: .title) } + static let cardTitle = Font.custom("EBGaramond-Medium", size: 24, relativeTo: .title2) + + static func cardPalette(_ category: String) -> (background: Color, foreground: Color) { + let name: String + switch category { + case "cardiometabolic", "immune", "medication": name = "green" + case "sleep_energy": name = "yellow" + case "body_composition": name = "blue" + default: name = "purple" + } + return (Color("vault_" + name + "200"), Color("vault_" + name + "900")) + } + + static func configure() { + let nav = UINavigationBarAppearance() + nav.configureWithOpaqueBackground() + nav.backgroundColor = UIColor(named: "vault_offTone") + nav.shadowColor = .clear + nav.titleTextAttributes = [.font: UIFont(name: "SpaceGrotesk-Bold", size: 20) ?? UIFont.preferredFont(forTextStyle: .headline)] + nav.largeTitleTextAttributes = [.font: UIFont(name: "SpaceGrotesk-Bold", size: 32) ?? UIFont.preferredFont(forTextStyle: .largeTitle)] + UINavigationBar.appearance().standardAppearance = nav + UINavigationBar.appearance().scrollEdgeAppearance = nav + let tab = UITabBarAppearance() + tab.configureWithOpaqueBackground() + tab.backgroundColor = UIColor(named: "vault_offTone") + let item = tab.stackedLayoutAppearance + for state in [item.normal, item.selected] { + state.titleTextAttributes = [.font: UIFont(name: "SpaceGrotesk-Regular", size: 11) ?? UIFont.preferredFont(forTextStyle: .caption2)] + } + UITabBar.appearance().standardAppearance = tab + UITabBar.appearance().scrollEdgeAppearance = tab + } +} + +struct VaultArt: View { + var name: String + var body: some View { + Image("vault_" + name).resizable().scaledToFit() + .frame(maxWidth: .infinity).frame(height: 120) + .accessibilityHidden(true) + } +} + +struct VaultHero: View { + var body: some View { + VStack(alignment: .leading, spacing: 20) { + Image("vault_brand_mark").resizable().scaledToFit().frame(height: 64).frame(maxWidth: .infinity).accessibilityHidden(true) + Image("vault_wordmark").resizable().scaledToFit().frame(height: 36).frame(maxWidth: .infinity).accessibilityLabel("Monadic DNA") + Text("EXPLORER").font(.custom("SpaceGrotesk-Regular", size: 12, relativeTo: .caption)).tracking(4).frame(maxWidth: .infinity) + Text("Your DNA. Your discoveries.").font(VaultStyle.heading()) + Text("Explore genetic research while your DNA remains private, protected, and in your hands.").font(VaultStyle.body()) + } + .padding(24).frame(maxWidth: .infinity, alignment: .leading) + .foregroundStyle(.white).background(VaultStyle.ink, in: RoundedRectangle(cornerRadius: 32)) + } +} + +struct VaultScreenStyle: ViewModifier { + func body(content: Content) -> some View { + content.scrollContentBackground(.hidden).background(VaultStyle.canvas) + } +} +extension View { + func vaultScreen() -> some View { modifier(VaultScreenStyle()) } +} diff --git a/apps/ios/ExplorerTests/VaultDesignTests.swift b/apps/ios/ExplorerTests/VaultDesignTests.swift new file mode 100644 index 0000000..1fa7afa --- /dev/null +++ b/apps/ios/ExplorerTests/VaultDesignTests.swift @@ -0,0 +1,30 @@ +import XCTest +import SwiftUI +@testable import Explorer + +final class VaultDesignTests: XCTestCase { + @MainActor func testBundledVaultDesignAndRenderings() throws { + for name in ["SpaceGrotesk-Light", "SpaceGrotesk-Regular", "SpaceGrotesk-Bold", "EBGaramond-Medium"] { + XCTAssertNotNil(UIFont(name:name, size:17), "Missing Vault font: \(name)") + } + for name in ["brand_mark", "wordmark", "discover", "vault", "star"] { + XCTAssertNotNil(UIImage(named:"vault_"+name), "Missing Vault artwork: \(name)") + } + let renderer = ImageRenderer(content: VaultHero().padding().background(VaultStyle.canvas)) + renderer.proposedSize = ProposedViewSize(width:390, height:nil) + renderer.scale = 2 + let image = try XCTUnwrap(renderer.uiImage) + let attachment = XCTAttachment(image:image) + attachment.name = "Vault-branded Explorer home" + attachment.lifetime = .keepAlways + add(attachment) + let result = Record(raw:["studyId":1,"traitName":"Sleep duration", "matchedSnp":"rs123", "userGenotype":"AG", "effectType":"beta", "riskScore":0.12, "riskLevel":"Increased trait"]) + let card = ImageRenderer(content: ResultView(record:result).font(VaultStyle.body()).padding().background(VaultStyle.canvas)) + card.proposedSize = ProposedViewSize(width:390, height:nil) + card.scale = 2 + let cardAttachment = XCTAttachment(image:try XCTUnwrap(card.uiImage)) + cardAttachment.name = "Vault-styled research result" + cardAttachment.lifetime = .keepAlways + add(cardAttachment) + } +} diff --git a/apps/ios/project.yml b/apps/ios/project.yml index 594ec44..cfbed65 100644 --- a/apps/ios/project.yml +++ b/apps/ios/project.yml @@ -24,6 +24,7 @@ targets: 'LIBRARY_SEARCH_PATHS[sdk=iphoneos*]': '$(inherited) $(SRCROOT)/../../target/aarch64-apple-ios/release' 'LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=arm64]': '$(inherited) $(SRCROOT)/../../target/aarch64-apple-ios-sim/release' 'LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=x86_64]': '$(inherited) $(SRCROOT)/../../target/x86_64-apple-ios/release' + ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon MARKETING_VERSION: '1.0.0' CURRENT_PROJECT_VERSION: 1 GENERATE_INFOPLIST_FILE: NO diff --git a/design/vault/README.md b/design/vault/README.md new file mode 100644 index 0000000..ca0a8b6 --- /dev/null +++ b/design/vault/README.md @@ -0,0 +1,11 @@ +# Vault visual system for Explorer + +Source: [Monadic-DNA/Vault](https://github.com/Monadic-DNA/Vault/tree/58c9f56f8be5b091dddd002d0e422d2a96f3a931/ios/monadicVault/monadicVault), revision `58c9f56f8be5b091dddd002d0e422d2a96f3a931`. + +The native Explorer apps reuse Vault's original geometric brand mark, wordmark, vault, discovery cards and star SVGs, Space Grotesk and EB Garamond fonts, and color assets. `source.json` records each original asset path and checksum. Font licenses are included under `fonts/` (SIL Open Font License 1.1). The artwork remains Monadic DNA branding. + +Both apps follow Vault's light canvas, charcoal brand panels and buttons, rounded capsules, 40-point result cards, Space Grotesk body/headings and Garamond trait titles. Raw color definitions preserve Vault's Display P3/sRGB color spaces and appearance variants. Like Vault, the app uses a light appearance with dark branded panels. Font sizes scale with the device's accessibility settings. Decorative art is hidden from screen readers; the wordmark has a spoken label. + +Trait classification still comes from `explorer-core` (`preview_category`). Health-related results use Vault's green palette, sleep/energy yellow, body composition blue, and other findings purple. Colors indicate subject matter, never severity or medical advice. No artwork implies a result that the shared core has not calculated. + +Run `python3 scripts/sync-vault-design.py` from any directory after updating the canonical files here (requires Inkscape). It regenerates Android colors, fonts and PNG resources and iOS asset catalogs and fonts. PNGs are rendered directly from the untouched SVG originals at 1,000 pixels wide to support both native asset pipelines without SVG runtime dependencies. Commit the generated resources so application builds require neither Inkscape nor the Vault checkout. diff --git a/design/vault/app-icon.png b/design/vault/app-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7d78dcff044760879ed86ba7d34bebe3f44c15 GIT binary patch literal 23352 zcmeFZi9gg|^gn)QkhMrcD@vqnQCW(aR00cb5XzEe z%9|1*Dv^C(vv0%9>vvwgKcDX(@q2uFJWAvBy7!)Q?z!il`#jG(cTZDJtmWIxhY(t; zckx}7xjK!|?>{+ECflf~he1dp>PbWrw}tt0sRc1H}4 zAoMzlfAtaAMt ztA|2cc6G<aosKec>4}~@Um0A!IeDL7t<^G2PDkCjpS1Dsfah~k) zvWCu;W!8_TysYNO2b;cXtdu`lDW_Ydkf>}|7#WGbu@ZwH)^oTT=rnykFKz%z9qUl?_^KyQQZ9~eZ@CJ?5)zz=FR+qb8<>ZJV>%;i4PfaOH zYHDiyNO?Q{$|(wF*E&b1MmZ7)|Gn_ocW}i+p?flD@f{Hf&_R$rDq|zqU*T8?LX0V1 zgi?1zI4!n7eCw0M$E@>bl45(ibjV0t8v@*4lA+j+EbJVw;Ex|aKvr{n7{)+tyqG47 znxY6n@gTevY0ignqFTSj4sTg2#88HAt^2dBD$3_Zux~0?I1%F-{;PizHCc3hZU&R- zM?hh?Rd&WTW0|cmc%?K9{@@yO4x7g+oH_Xs`5ow|eAZcX#5l)Np<<ky+CA7#gj-PIe^@tI@8KEycLKS%n786SaQKZjdP_j2rUAL9sa0<8+yg7X62 z{|jylejdcy1!AusKFS|Nyz|E!Qt5byZh`8cC`#o=h^YrXaKwG6Fydc2yE+DA1c7%j zXg1T9R-lJ4nwzNDfFz-t_xcYyKGv^{5Zx3c(OeWXTeIil;)-9>lQPcY%|d8c5R?%( zZDoX6W#Jtk$2)%1jFlU3(?I?I9@hy$r=A2vrt*NO)?scS>N?ufkc~*$3s*c^Dur#d zEB8}9$na-Q$OqNbY8#~siu~rU5zqzPw>choG3V#!RgUo@=;^=LB*T1gqv9Lj%Q### z>nm5%UcP!2D`kM9uftFWaJ|u$B8rj)%I4yveP0i2pkZK+Dla>s~)4!jSCnd)$ZE0dkv&4+(cm@ zxu0|v_D133mf5_cXc$rsG!hV1XdyP96hGd5Y6M=pq$CIi@Z9MFJL3AhH0U_uMmLe!;(OrGFv9yVhIm}-Rx21;6M;IEvdyf%f^{%!-ZzK(yU zHDd!A{EP`+l&cO_^JI)rRbfq;!z$p%<6Z69TuqkieK500B=l%DxP8TT*XggI(kv`0 zazs4dO->bue~45x1x91-yZ)Vc^c3Y%5vlH)FI5AXKLdohV#qc4hx3 z6YjnCM<`h-?81h{O~_UjdI-yqG`ys*CeO)9YsF{!61a-jo(?IPNrn?XlajwijIVfj z)X z(w{&?OT>SnyJgE3QEaWr|M=D$T%yQqi+2~q--f8;9qq+CVvJxuJnraOEDTAB{$TZ0 zeftQ?6%wLthCaGE|{-n@Bp9;J%n&p&+mLb=qQC*&3wScb@JLGdZk;ssY{=U2)>Nl8h#99+<} zG}I9rz4Ub_dIRg6u|@v&izvDVI)Hz0OkUF>w-Z z2?X(-AjNru9_mEf8=`9-sQVfm_4I++&aG8CWK<03;6#1caB&!PBd)76iM!B?#XK;geWzMepK%SVmC?l1O5kwovu+0ZPHA_35lc5QroT;%@S!onf{{kOKLx!~_h z;*E7gu~)BNZR}K(#k?mw6}Y*%2d4WzhNfjKHSFd^0{5WpSA+Mq(_PaGi;LJ-b`F2{ z)#CM%eGtE;!5X?sRf$#969zrle2W# zk-m=>$>CNo9z*_s;D$47+F7l`!0&98d!OJ-rWc_#hPZ+%KC|rN{eETuwW4Z)1{1Ei%Z2S3h z_aA+fJg`9dw;SL7>B|`J>ulTKD=N*Mc5CtR~U)|ALU zO&a2pu?RVTQ(GJ>B_-uU4a`AfW>>O?hwTfy{%4oChqR5yq|DQ zIKjvEK82zD{rzuQta@)X_-*SwKYHGHH!*kr|31TG+7(Y9AA1q&b;U>C??$K=hHKP- z9=Cw^r(G4XuEPQh^{wB66_E8Aa2m}F=<|SlZLQ_4WGB@vJ)8b(A_q-gWN2yEqL1#C zN5ov(i+a3yXrZ_*PKiF&C`+z45yQ6GI2CR!kn_jgD3=F>NO6m89Y4zxbpw=+B-Y8Q z5v5Oa(0uV$$N0>))Y+*nK={;9S5JuKP)>>@LXx}@CEyYJ$Kw^c1s|3;)YHsmEn@8j zoAb>B$aWz~)$WVaMr5zYhbdL8<|!xbHO~Ia0u9kw-(MIH^j1ZL#$+s!ZjAorJ2!lW zK#Lg$FE}7axt3&OrAuKuIl{d%7e8O`V+x)^pW7rw^D<0jy1M%sD zllfX6h8|4zenk(g?SWm)L2rNI`-6Y^YeUm+b-d}o=Za-}7Rgc*fki%kr=hLK!MCq8 z-AqQbR+Ck=ErmPlWC`tqgSG^k8f&obvFb%G6!+-w%9_4_Z1dvF%`5@SGQaarwES(K z_it5M6W#KoIm?J2oq}+bx?bb@Hzw)OD{R(xb?LRsU5!m23EhS;Y+Rhq704izw-~o8 z=-R8$J^QY{PtV?pGC@}PU9YMK*+W z_d&;5Zq8w6Xv-On9~8DBaRRb-dAx%4M!*s=7^`T;2JsfKEb3=qjFAaUKUS1q=8htf_v-#$aD`pJz>E5U@R*0y7S z3|vgGFvAvMQYL)B1{XIDKKgpsGaY|P0)MF$W|h8_T)_4|db?`1i4cA9FnSgNF1JBW zR5VR_LRXhisy!5cS_$&RXSd<^R~*DFBY$8n+qQ3~5XA;#0#WgI4w@!7v3gwSrP*d? z1*CeyoXYg}QK@c@XSblqPMg85*guanH*tMBiSj+($da{!JYY6o5s~Ysx7e>jSLo^o z6;kM!UhIE;w{;iiNioJB8}wyB_@O?y%wUbe5M6@BqRK5CDs*|yZ_^ygE-<4(mrCXu z+OgFF_TmYmd>Wd~pXIP_2ji^XBwFu#%U(3NDPBmdYj`Dr`eY#Sl#pj#1T}&_?`FJz zf8>(3F6|FG!}zzlx>_1p2bp0jdqZE+>sNoYw3JDp$Y{``=B`z?(Ul+#n;*xKRsSF;w9gq!YP0XeJq9bIw-AKCDOZHZdfh~kV6s$qSgzZr#5^b34kQh7e@Ljl zEYHO$E(S;Ks=R3`p1YE`26CmJ?HkNX;0)pABZ!y(PhdWsQnwhiI{h(pIb+KB)VhY+ zcqQ2*jH(DR{#iYqXhqtIsO=k3m;nyw0EQ4}L}C>vSBOMQ1kOG9fd%_9=NyXNdTzds z=Sn{0?J`r+uqZ^kq(Vfe9~Z1<&C{#wSrX;)Z#Q(ySN{}ZHAYu33=}`^7d~jZ3?noq*qwq z<>V{ZOYWjDJ&-B5;84;p3v<4zWN}r+>^0_Jz#SdwJPbw=7l1tO9bLC2f=o;z_hQxc z-)XhiRS_c>0+je`5p4PLJ~^j9hl|2-BKYm~OZ!HMC)E&QL3$wm9CY2oj=!o~x_wj3 zbiQTswwBswW1yF=Of6ePrS|%ORf@_Q$vM;Z zIa}1iL7Z#J`9ddQg+#{gQXK_UxX<$HYyH{50A8CtR_tIgvHvY-&-^i%kwIKbQ?;D(l>R zd`wKtbqU~MjeXH!it#Ib zuQZo@MDugbMhR#}C<$EgDh^n7zoZd<$o4ga=-*uxRwl_7yAW&Y#q3Z6_6jMBhhu{Q zQ}4M4*^gU)|IW@%+BL8^@i}&H^&WKL7&m}U=@VAdU6B(L&Q&Cj*Mio*%@kTB7i!dM zK}3On0TQVFC_yzhv1}`@XQ}3hV5HTlqrMnxkw4;4Ak%ZXkh)ShGu2Z`Bp1Sx(6hg{8*xgo13x*>$Z#y{n$-fgqV_O z+)mCv*iWjROINvt_Ucrnj_TR;j#A&|dFKK=Gm5c5&Awiu@j{XnS<6p|jQ|^xqtcgJ z&bB9yG*yJ4#<*m&p=;z76c_IjzFKZuN~8_4N>C#|7~JN!)wIzs;r#&C8pi7#Efpgc zoB&&g4}6<~UB(7BsK#UwtSeyFFjz5t3G2BnA(MjSl_qa%Lb(eTg2_{nKj$>+Ql$i6 z{p-1?^FHj=<^F~dokO_X_5jaVAJ0>lm&M|4AE<32U65NrU!G`P?DQQ<`7jd#h!OMq z^6U_H0SyDHo4h(?lo<0j2D3iMHhu27F#h{DljZWs^W%q}o=XI4jW|T~JT=|*VL9Zr+y zI`uKihF-s(h~z2INgfWL!=Y6qF@8sPjFI*}N5h<5oJBst#dbPkA@$a4k2vQpr3GSQ(07;VV= z4=XZAw4C)G{q|hvP-Y9uCTw%HD zDhh>p!&4afl`%>-bETQi{wsA&tNElK!|T*hT0qpqdcrku=Y$6~)DFFAy3#YfgDqA? zZbxeU_+g@cgmR*WCt7>c}f1TS0{h}-orMQ6#O1eO|bf)dfY)xI8WMXdJ`cM zP@-r0lt%Yax+8nI^VP+|&wU@G_;bbIsg}g_l8#&#y!Qr_?+bAF7% zGCm2B&*3$7q$$H4@>Z(3)sHX-p=i-zyM`yNeT}LB{l%olxJV1tuC%dM7Wo;CJOKLW zt$!3pjYzs+Fx^!uvMi=(o)GY=)0p!2a6LAO=b?gSIe?~8P`ko z_0`JiHuA?B7mQCG;*bwCUn@mkJi9vN*Lv&LEn=g$3jwWB@@O=@c>|RFa7~UKAM*hN zU{KKt+^K)`wUk$0e}xD8ozV$5%klt+yVkcejlY`)w56zw8r2k$R;Oc&w@+?0 zzi47%;#W+|ocO?f=4!s-M-TV1)cdrB0cp*goY&>q%+a}#=9sT3rPUr+){wiveD7Z6o66+S{qeAi^;`~C(z8K!CPgJPxb z_RIM_U6oGM_L3X5d4(Fq&wK6OW_imViE%t*TsgLNcnkR7WLdd*{c|dHH+v}NCiI#` z57P8CY*FmG70K1#kYz-VgYx0Vwx=7cZ)E1odY1LySeJVZY+&hO)<*J;HvCo5OZ9T# z{xW9LgLzT(-aR-T>B4Q2QdXu_s~j8)5P#Vt9l3mVbJeA}qv4pywN}sin$r72R~}z| zH{*AT@DKD0<~yKB=DJYDgBlNMJpCMo;W-EM=roD$`KtY$cf**^y5)`vx1JAIZoQ_#~e*YxCGtEU@cG7lOHkziwuJPgW*;JWhH6zce9O|2S8wGt+ zs7pP!V=A)7xKjB+9M~5`lk#7n!PCS~iSW!x3}$e#g!0G^Lz73pPkvARXHGL`yMo%Q3v_MIM@o zo*js{(wv`s{V_@+-bj1--yLr^oiaL8_T*R0q;q*g)OM{s`}ayQU_+BV@>0lpe#Wd} z$skCklNt=@6YWd?dl>_^%B;P1Nrk)CdC_yNlt2}QZyg%mzs;9dRBO|f|Mu0Pu@k&F zisXI7aN0)+rCJI5m0|3a0XSX_Kw89=$_r8Fd>iX_ zW!{@*m<^++1;pmbVvP~6Qb07e0;zw~1cFi8#{s`Dw&Ds4EY?k-f zk5}#(oAtp7GDodqoqOMN#d9s1CtnDql7s^+N<1Beku(o7c?1Ie)pp|C(vYI(qQRoo zcA5N23b_$95?))i6h3zbL9Z3UA8`O0?d5!gZVv>w!~Wg8A&w zH%~8(>+d{${Mg6vK(2yniF~tW5ovU^i|5M{ab5fv%XNY5V`vo$(O1EgZ3H^HPEq(goGoM zBOdO_&1=H!{QZArVqDV0pT$_-P*0gzn(ou_KWi@|R69gqJ^Gq$K2lOqVTC%Sq2}}` z=1sEv?wet93QslWjmAi`dJks1-{1P6-2aCCo?F8HmWyeSk_vkl=Wt=^knGFXV_ZH^ zn^SKpm}-c>fL;20%ZhSb3n|J}RqU`c0XU@P@Psf?;A3ZJXTRNm2jV#dFvPyHrpXAU z^4wM`!-;7{(X@q5(2ZsSTK!P) zz3VQPYx9GoiplGaVY!>QhAG;60X^JTeE&W>Ujj7}&?zScG75hTfTYG_hv;VPdNWt9 z8E?ys@4w2$nnKmbxl!avJ}ipFF2WP37!BLm_`VqK-1>UMS@v2FCds7)U2ycgp=|8)g71QVf)SvPRBrdt7ot zq}BH1nc0I@t>po97UlZ@0B+d_#)4P3%5!g}%bzoRHoM5YoF{+!=NeWT2lD%Txk5AJ zxQ1*K#i(s)6#g%%Cx%!Ld}m50mtSt7dvf*%9;7>yNvl+@;n?({=H(#4qc^_JbSY%r zzwvqHTF?UDLpB7D-M4SwULZ!E))b$OrMtSk{@S|cg&imI+aZ{)L0Fz^HmZe<-Dxi8 zP8|0A)8sEWp7GBw|LS57Uby!}&rY|KgNm(m#d~-9W+^NB=A?9Pji%3Is|}dAAZ;V; z`gqXaz;XB(w$Vo=Qs2k~VY#l( z{iK2WQy^j3M`r|;-aAfZx%YesB|d1miLAw&v|@j_?IhgLvrfthA@Oo}axrEi5t(DA z=aFxd2%93Cp#Prkg&i(xl5oI`$wG3w^P+C`e6n-WCC>O7q`>R$oG3SS#EHsB&0>|x z3GUXI_dfeoX%O>G(L$B64PBgsZ+q!EB}D5WB1(v94Z7d=t)ff#XW;TcJXhvSkc)tI zg7EMrUdc=gf{PF>rj>wHb8G0P>34p%w|feIy&{TcGTV0AtKD;_yw5M)BD~2h733&$lx`1PAyNoX>ZSG2UizfpM~+(tMpqg zC{v9`T2lW6S#ySScFIT>b*~j=?u$y^YWt&$w^um;C}%-A%b_Cov1tkHjJWnr!d4s2 z9aH@^8!n;m8xVQfE`k~!B)G2b^K&e>Ki%8gyO1#^Puxn6PPLZ4jF%A9j;{-;LbZR|?=1J_I-QM}gZFoMAuC>k&;61h>Fd7yBGaot?*(@$O`o>J;y_e51$u2Kau|*yHjYpi}#YZF?HtKTXwevC<^sU2U&WX;W?w`3&tVhwQ$|=?(${{kR zPH>L%ry8{r$vNr64cx9~s~cGbyPVm+pPDndPYukT5H~3lu{X{(zkUwg^PSayFP~Qb z4844~4*4C4AXzm2wo=-LlBEx!rmF0>Hjs~9X(d^Y<029&EJHy4u!z{Pt9(yQj* zR%#&NdNg&gm_ys*ZX9P*Sm{uI>%Vu9g$j|Jb#`v($YBMq@Su|DM_QqDFDe?0eLE2l zG`uEtEpHs2GA^%pT9HM0G+(9~YNFu~QEEw?U;_ZK-m@xCIq*_mw{+{7N34A%1pAo1 zTnA3feCg=yU9`_VVSxmB14uFpmh$xnS2gs^yz{Sb zx<50Cu_w6(ZS*8xM6VAX=Tjd11gWUJyo8tBQuAQWu-(SYUmk(T{b8w<%@g7KJCOCJ zYNAQ#$Q^KfNGTcS1xwA`gR75?JKq61`;O=ub9=bXt5PMBD_7rFqBi(sc_fe9RtODx zuj#kb0MXB4z5FYjoy^?3`nZM4YN2lQNrId^7F&wKb~kcfA-qi7%cXH2FEiO5lx3N% zj&Sg^O)i*8Yeml<^rh;(Ut_4RMzh;}0qW1W0Uks#B6J7l(k|nwIc<#w9 znTM|70=QbrC4?3gpP~7UAnP6AktFv~rRSM~Gd%_Q`Ds&G`>cYN2c+9W)G|)jiWThY zII(=H)X&_v?!;AEQRgv>ftSGoNFD&0Zm=tXyoVp`+ujDHk9o*jGje` zQkkD^scmtl?Kqg}bB<4?L)TMo^2D+*XQP?ci6JL$GcCU`; z-)x8^Fp}_znk0EDR#Cm$c?iQvo-g~?1RqWsiQX(hVBCRa-yp*FR1j>{Xr;9buw)6y zvt~Cs8ol@t{HKqw^9ncP&cIO|Zw#mU$$7Bl*iZLrRDG(9Ts&rJx8G;Br2_)NCg=H#;7SGeZ1$(4JTdEkJxg zf3tT}lh{qvX1iX}_482bK9ra_m6daLF6(DkN5}a&V|~Ps7AOj0`QhmQdV=2(A@W5P z4D0aj+IXk51utH3CH@U9>gH8

DCf*n_{K^V8Q{Fcczhao<48jrmkLg{@Gr97di9 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 IS822V37zza!2kdN literal 0 HcmV?d00001 diff --git a/design/vault/art/brand-mark.svg b/design/vault/art/brand-mark.svg new file mode 100644 index 0000000..bf747aa --- /dev/null +++ b/design/vault/art/brand-mark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/design/vault/art/discover.svg b/design/vault/art/discover.svg new file mode 100644 index 0000000..616a2ef --- /dev/null +++ b/design/vault/art/discover.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/design/vault/art/star.svg b/design/vault/art/star.svg new file mode 100644 index 0000000..838c57b --- /dev/null +++ b/design/vault/art/star.svg @@ -0,0 +1,3 @@ + + + diff --git a/design/vault/art/vault.svg b/design/vault/art/vault.svg new file mode 100644 index 0000000..a6f48fe --- /dev/null +++ b/design/vault/art/vault.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/design/vault/art/wordmark.svg b/design/vault/art/wordmark.svg new file mode 100644 index 0000000..28c2114 --- /dev/null +++ b/design/vault/art/wordmark.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/design/vault/colors.json b/design/vault/colors.json new file mode 100644 index 0000000..11b6216 --- /dev/null +++ b/design/vault/colors.json @@ -0,0 +1,677 @@ +{ + "darkMain": { + "colors": [ + { + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0x39", + "green": "0x39", + "red": "0x39" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "offTone": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFB", + "green": "0xFF", + "red": "0xFF" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x12", + "green": "0x12", + "red": "0x12" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "monadicGrey": { + "colors": [ + { + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xD9", + "green": "0xD9", + "red": "0xD9" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xD9", + "green": "0xD9", + "red": "0xD9" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "border": { + "colors": [ + { + "color": { + "color-space": "srgb", + "components": { + "alpha": "0.500", + "blue": "0x17", + "green": "0x17", + "red": "0x17" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "srgb", + "components": { + "alpha": "0.500", + "blue": "0xE8", + "green": "0xE8", + "red": "0xE8" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "chip": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xED", + "red": "0xF9" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFA", + "green": "0x86", + "red": "0xC3" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "discoverCardsBG": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xF9", + "red": "0xEA" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x39", + "green": "0x39", + "red": "0x39" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "purple100": { + "colors": [ + { + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xF5", + "red": "0xFA" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xF5", + "red": "0xFA" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "purple200": { + "colors": [ + { + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xE8", + "red": "0xF4" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "srgb", + "components": { + "alpha": "1.000", + "blue": "0xFF", + "green": "0xE8", + "red": "0xF4" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "purple900": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x63", + "green": "0x09", + "red": "0x3C" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x63", + "green": "0x09", + "red": "0x3C" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "blue100": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFD", + "green": "0xF7", + "red": "0xF1" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xFD", + "green": "0xF7", + "red": "0xF1" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "blue200": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xF9", + "green": "0xED", + "red": "0xE0" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xF9", + "green": "0xED", + "red": "0xE0" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "blue900": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x4B", + "green": "0x36", + "red": "0x20" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x4B", + "green": "0x36", + "red": "0x20" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "green100": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xEB", + "green": "0xFA", + "red": "0xF1" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xEB", + "green": "0xFA", + "red": "0xF1" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "green200": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xD2", + "green": "0xF5", + "red": "0xDF" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xD2", + "green": "0xF5", + "red": "0xDF" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "green900": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x0B", + "green": "0x29", + "red": "0x16" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x0B", + "green": "0x29", + "red": "0x16" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "yellow100": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xEA", + "green": "0xF8", + "red": "0xFF" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xEA", + "green": "0xF8", + "red": "0xFF" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "yellow200": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xC6", + "green": "0xED", + "red": "0xFF" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0xC6", + "green": "0xED", + "red": "0xFF" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + }, + "yellow900": { + "colors": [ + { + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x02", + "green": "0x30", + "red": "0x45" + } + }, + "idiom": "universal" + }, + { + "appearances": [ + { + "appearance": "luminosity", + "value": "dark" + } + ], + "color": { + "color-space": "display-p3", + "components": { + "alpha": "1.000", + "blue": "0x02", + "green": "0x30", + "red": "0x45" + } + }, + "idiom": "universal" + } + ], + "info": { + "author": "xcode", + "version": 1 + } + } +} diff --git a/design/vault/fonts/EBGaramond-Medium.ttf b/design/vault/fonts/EBGaramond-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..eb127af9f263bf84bc7086ca25913fac86d00646 GIT binary patch literal 563744 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 z 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 literal 0 HcmV?d00001 diff --git a/design/vault/fonts/SpaceGrotesk-Bold.ttf b/design/vault/fonts/SpaceGrotesk-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8a8611a5836243678f08e7b5081afee916be03b9 GIT binary patch literal 86516 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

SOe=dXzqnbE9K8 zIeLN~%Xz7j*y}rm9XV$=xKxj4e{CW=XwJUyRL)UNxBsH7U`LxXP@HU=#rd|`dXAo} z=jr)+0sDk!vYY4ZAD?UfZK*F{ukIpteX zRNts?;=fV1aK>txzKye~x9dCfo%*htlNBpjF<-^$iZz_CxStai4{*lfA-!Hd%#PqA z?5J;I-|sPYrXOb~_DRkmJk4o^XE>wqtbR^EuV2tF>X-D(`W5}E-lkvEuj@A=MvNIY zOcjob%AZj>p{laNlRv(yY))BJe&yuKin8f(g%hS$O_)7nQhC|D*usgG)uj_AlvPxF ziYAmA&qV|&t@ae#x2R$_ieei@Y;leEsA4y^fnl)?tZ|MTRBIhEXnbjvXK?k@@`+_p zgPjPY20Ot$gKfldLu$QyhLuj3U0voG=Hy^@#njB=th|U}#O)d3IE`?eMmljd964on z#pKee*)z&ZXIFbh+88~f9IvCoV#z7=9A|Cgjtfg}wDl1&+GKK!lgTk|smIu;BF9us zt(e?!On53$W8C7OP#aU+iM3|WNj9O_lWJ;27gtPHgNH;79%5ahO5HR{Z5mOfZhRAJ z)POrKm;R#s77S}}3z1W&nBx#eM%o7FR-oP<0Tj#GtoimNC!|IM$eoH?Z| zs?tfMVP$wldMa&F9?q+oMz0EsF{j8g%i6}xs?A4ad1b}qS)OX^FQVF%VYX9-*>0uG zwh>0owv9GBJgunNZY9sHjW2F~t=Y4{CKtP)rowa?jW%^!)YNI#C5q1I=Vk<>2QmYG zN6*P}_3RkNSJ_l90hrRDdJ5I$m}kXJnmQ+BZZM0XSm8R@__FeQI(pCS7@Nw3${FLW zjlaNg@fQT#cPAx(4<`ry9wo*;;P06om0w(w!_4CRVq>3KT#)PPHmAJXc+j(Le3^ws zj(fg+CtRWX?uN_HbKmo=|A60(CqJY+`3m?0vH7ODZ5BKQ-OTAgCq#Bu16ya=Sv8iK z#r`}`QO&DAvoPEGLARE14j~Ge4K=FqOxQx>+34Yx#ja&>jV00MxY6d+SY{Syx+N@d zYpBpIX`x%9Lbrwr-TXV{pvK&qCUX03-fhhjROP2FY|mbe8iv6hL0YkPF9uYf<# z`a-vs@q;H$EvqV724~4>qOD z;zB1Sx9iwY{(#>J)xhNgHdq6f8MyJ;;cU$wr!L}5G5z`3{w#lHVwlwr-Z&8re?2&UA`OBsSCTpvlg00%yB}COZ^~8)>$U z%%53g2We(;k=wP3+(e4pu2AHLFLJ^M{I+ZQ15TIl2eLw4(%M6AtUs!?ICA8a%Bl({ z7e#KCi$k%x9lXfxXvH=b>fL?MasA~u_Kf+sk+aH6XH5wsAK7jk*)|M0a&nfLW&8akd6Y~OcUBF`;-Nw(+2FzXVx(z4vbmbl6H40uXSm&}YStr^^yE%UPWPOSNM zaMMh7aJyZqz;ln7G#D6FR=6%pO*fHd|JwgrKOD4l0I(7zR_*)#L~J{ z#0{G72F-_U{GP7Qo?&^+FK{g_nZ_Vv_R zQzw=+sd2Th){E^00lzIjJ>4mPd}*ka!jp3ADBrE4(lQ%eTxksr3+3LexBS|ABW9PG z`5ns!t_Wx2Z{P}W_9ebn>ZxJofr7%=Qo|&z565T|Pq4Pu=;RcBX9^xyT0;mki_Cegf4FRQNc z(8#r@^Fv>YW18G=7KxaBCUi4)<%dZg|w zA@OGg972=j54fHK;klzG`XNJwHjZ@)Z7f2Cwq_f$;e<*g;28*- z)umPQ-8OMZOqN53{ec2Y2LpbG))S4>QP9K7Xk|aj<`B~?S3W?m@kEWel+<4mF%h}j zNzU)E)GU7w>$3qu!uYcC%DG`(JwK+js;YAC#LBsrO+i&`7LmVPiL=161elqvS#)>Y z6ko=tFg2Fz@KMH zaKPWg;X4?dL^4BqPF&fHiSR^QzUZh~n8* zl?i3@CX|=XFy*#k^`uiLMS@eO#u{~6H}j7iYf&B@dTluARA(M#9b+d=ojkj$%p{ah zYpiV&zmr*ips;6*nO4|}h_a^gNsf)FhG=VJN^A|)u2WbY*ovj-IWdzeXIHt=7?X*{ z=uR}oWTP<#6OGkttJ3x!qH%grps>JW30xpD3BO7LA4g98WEEn z3X5(n6KbcfHJ*@CT_PT^L_82npOxiFB^a7tz6^wRN_bIMF^8`pWWIj(DE zv)R0kulhO9wCos`ms8V2{8^a=4tdKg@cVNe(JRYuc`T%$z&^lB! z)6tm;I20%|%N4w`dN@?W)NQ<_A2qe?IE=5Xp5izdQ%#8jJ&Ns&!|2vBqI_yqsZ%Ux zz81*LbVSEYC!a|EHlO~iEGKVSerFDfUK_2yz|B~;6Bu^jnK8A3WeO+me247%o!PKI z)0qfl7S~J=dc;&rt#C)EH8HfTZikjNnSo>t3@t~m9a^?Z8Cp)&W)_BW4;u77E-0aHL0l(8g0jCGkfVQ$|bjLm` z;EJ+^C6Sf2^0gy{XBHQSVzs_W#U=U0Zg=pz@6Pf`W^qntG+fORB9AeYPqOc(uA#=eniH zb>qqH>6rzste9vE8z{_=wX0_i^LLCef5%|@NsMEpr$jp@n7?bN9ac7NTCPX*tf}*y z?q&>hH>26^W(=mg8J+HCwb}^muqT4t*m@FqR+b}BWVw_M3TNd-^qNYetd8`N+0!X} zR#t99vqCzZemk*7gv!dwiLO4i+KL2DOFMPKfqfv-KnxnXB~rgOXbjAfw9=_GQ~Y2XV=o0VwZB2xE-e0t(0P08PFbgbcZCm z9tBZ$EX9h?D zL3SskSyo&M#puqlOY9umwd|P{WB!zF8!o=a)XkWp>}&a?2Ci-`9p9!|9pA=e9ipu- znzdob5Eel5b@R8?tBC|E!!?o-YZs{)&k|QXwoG}^U z+(97XojV9P)4`Ab(L4XGQ9@5ItK#m=8KqUzMavn}XP7g@996OBSQrDn)C*7LZlBTSVI5tmEt3P8a_YbOrjL8 zaKa3g^H5UE=M)?&=YXWx&k0f~cDd#XW1}`$`;)EtCe&B-Ow?^^9csMY(GK1J8oK$_ z-1f@8Bd1sRGm#LU-@v!v3s>KV&gm{sNavm!&vW1@upStq>|8~d{N)%aPb@2W8`Gx>3TdTB%~d%ug#o4&}kH0E>k zg3ufL$`v){DSAAvr-a@eon7l=^pILRT@*62|DA__dkV{xGxX!$k2J?j4;0!LX5TVo z#@_UP`y+nWKeqAQ5~9>^#)18QdX)3yRKUI(^G^QT;r?_yH#NPYo-?oNDc2GW`$t1> zoME7+IX^{z3;j6lTJzKE7$^KVX(~87K`%5wy}+o>Pc78Du$gDxI1O0yQ{|d+8DKxD z##(U3$9J=zrvbLt4bNL z<~7#Oh1SO2dLeTi8=Hr7tUY4^|7q5Lku`UBRAa*_P*YOVt0m{qjM~E5w6*3AHXiyC z_IcL)v{g-8NlwX_k{)B#G^_TuK6_fVtF<}JnzvXp;}`#Kel=LgNXz&66iDY8_1j!$PQMAsNVGbol0&ekjW|Q+m}z&;=Lt^l3E2fV$|-$-Q7`G$ zw3w9f=+Qt?8Z$b7gl~O|{sq`aEt=lSs3aZDjaq^ehk_GwLOcZ?rPS*ww;6?|P4B?} zN47pbGPTI*K+`+Uv}yxu^M`d^;;7bU65-%W)@h;#(}`O z_tB^Mq1zvR4hFw=%txaJzYDtg{wv?XBj=lbTlW{Li@LV|*;|nMtNn%QF{IbJ{BN5~ zy5Z#we(I!P?1CG?QwB~xoSF{q51J8r6u+PussHIO`#%l%cj0Ww++OVX4I17lg1^=D zD%(fGYXw)gpZ{I#weJ5x+ZitX|K@kJwGF-g=fAo&5gIi$`caJEe_s10mxt32)5?F9 z|4Sm$PeM`BwsR-{1aD`dc4I@L+g%s5cqs z;OmYjBR2%E0F*Si+@LrWi@VfV{`l>%R3Tjdna~h zRJrE&|1QPW<7%4+}{FroDs99RG%=m>-<}TdN;o4rV=ACAd9g4t{uKo@#2ZX6AS(A!A3XS0U?fn-$?3TJQ{HJfMKUlhi?#^QBNw>Y6 zm>Ex@dG-5ssqN9Fe1slmQw+(zCYIn6ZdyAqU+tQgyE=5v{6g}CHCqYETAP&{B)#Cy zP+NuK!tRjc<47ti0q#0Xt!pTxGxs;VB~Xr{7>AZBfyJK^-vp~{xa~)pZ zKa2Hn`%qgR?m~Uo_O9zfD>ODXb^BW=4|V+>>5crlW9LY&|J!zd#Toy%)2bU^h~w0? z{oi=2Tk}qgp}y?C9TknY@&G=aI;yRyS`+{H=U2P36@0;ozm8f|=k2IoLh?o3T$56b z%;!WCE{7de#PvM=Ro|}X^*??MtF6C`10K1jZp)ckfJ+{7X$G?v^E0gy`URh>8zN-? zSNh@ksb9;7g+A#pn|c;*3`tP-edL#Xlh1mbuU?S<#n-wi)qVT3WI{BimM%G5qK0Fc z8-e-N#&*Q{{+~tve`s&|u+s}_%krNlf4JOwBnlsj-O>jny8p(nw%%)FuWNUBKd$xp z&rC;-iS?rc^k+l=zW8VH{WIUSD-q0W>d?2EzGx||Q+i`pYyZzu`g7k$k|k<;lTFi^ z0g?LuUWJCi#4n@&kh znubTZ6n%gbf;qS=IkVFH1!0aLsn(A>{JpL$Z`WGCMZ!0=Uo!?A%1heLs15OFQ(pX; zAGPC}ocI6#s?@n#Hn&gJl=8oo=lVR0+Wp6^^q=LeehHCT_SClOKabPwHiY+!e;&jC zix43y^50Iowq~uoP}8q!?f?5Zuxml2?CAe@DgU=i_Gj^jm(Z9)R4BO12@!e^g+J{5 z!+%OILoxk{uDG8qf*aNZx5RaYJ9Ot(xK7*(m%}}A=1#coq8I0DGr2vo2-7g`ee2Dw zZ)5q2%&FYxRl>df7xN{VOS!*mD)+HH&Ru6ua&yPo&f zc$KJ#}Dw>Etyzc%+a$#2XpP4eH| z&-9D@p1YZ}Jjks~k$g)qT1U%Y%)Lx}U$7Bhtoxn&mpZ5@?pW%o8ga`~Ks7cuEU9MP zrc|hs&CN-w7565MRVn8CKB_%;C5=-Z%sojejeC+NsdT<6H&u1wD>{`b!`zIdx^OcR zUnVqP08-t#8)>2Pb1TvXD${%mNCmhVX_3m}9;6#pHg_J~$@iS@)+1)XMA{z6UuP!8^Hsfi4U31=&c_R3JSPRZ=x8zCYn^CRkXRUb>Iro=>iK=bXfcEsJDN77$AV4ud#hH;$r>x9|dZWv9!<@6qXxhv*wJd!@#9kZXO zAt_`MLx4xq%d_IHgC~W)pGTTKc{F6eGAp@e%56BPR$NFd&FL9X&+zfY{VJZ{g^-J%wi+H(fK7cbAVgEV;HaBPzV3! zE27cd=ywpCAGnQGiXcz4Ie;(XxKT1vG?Y<{=U5rbor>Cy>ehS-qB-Vd*;1r%wzrjt z;YP*Qgfh1(YCGB^?P!l>w4WtB+}d|8J?MOSKDTFIEH6gAL|%e=nY;{@`}uHPCYPb! zE^o(%JNo!S47c=QzDM4}S2?(=5A#a75;HgUVO}j)V_qZIV&>jH)Q99lsO#l=>>rjJ zF>m4y?&jRi_ck%VD?dTyu03u!{Yrj?`D^)a%-_i$xbyZ$#g|FAQ7?x3XJZxLJmfCD zMA3r#^qO$|Gf5?hNbb~Yin$qg+eUJ?9^V?`e!XPOEmRB4Emcd*tyC+_=9>wT+_{&6 z*~@+2k>>6_%xzU$%zS_tb34@zb9=rPA-RpO1Libt1?T)MCuk$NnJ*o4C)Eja2Di0J zC}TIw+|h?QQ)OZfr~u|Hm4!K5@f{Ox?aRTO%Ppmn+xvQ8&f_L~2|ew@-L-vHU(EgZ z?ph>w`SIO01%*Y0!io-t!eWNP;u8vs848PfHg}Rr?%BJ9+fw;*nMgC#mfK9Bw%A;y zuEF(M?yhcSXf7%=7aM3U-{yhZazFhVwMMitG*@&qG?&|CA5srt1LfsQ9GlFSehmG^ zyxE*AHB=b$ljiGmh8AOn7K<1|i~07=dwiRy75C}AkNE@j0p<_YPSMERt0&?(3%r{z zE$mTyFz;1+v4>t`{#1R6Jye@`pxUTVZB(c>_Cd{mBDhgciFW3bYup111?LuCC^$Ay za9p9_LK+H=n#S3EpXQ5fq7yggbrL-|{oe%}C_AoDc2sW76B$tUe8Lv!0ujf3d4-rq z=nXDeaBTqEsmb}sUAEU=&hVF~bhVJuqunBsCXluUl#(m3Bf4(6G^~a`ye=juU zmb^;Q%J2ZbNd*r;g$IbPh6nId!$j8)0pomHsNHj;WvCCh^I*y*J(}M$xu?mb@~xsOK7y=I{gph zIv!4(w32dH}Ph#_we45+ix5zD&>lyhB=B;uoIeAt-i=XG@bNG2)zKG3B z@+JJdEMLZKIGlvTy^Fd-ek6R{Hv0+YPvsYUo3xha$uOSRnj2<+C$>M77Hzpv7J1I{ zzxIdmKW+J+$MQdI`Jcz~KW+J+$MQdI`Jcz~KW+J+$MQdI`Jcz~KW+J+$MQdI`Jcz~ zKW+J+$MQdI`Jcz~KW+J+$MQdI`Jcz~KW+J+$MQdIIiI$i&to~Cww%vnIiI$iFUfK~ zZ8@LEaz3pL=hK$kC0TA4XSrP*-0p1njp25kEVs+F+-`v7cAYGrOS62A?}zdQ(E#6L zz7_tlOf7@Q+{X7sqt$XaUl%jmfb$vtmv1>=w&i>UmgjjbxAR&)=d~Qp8^+;MEQd?8 z94^IjxU?`1=kT`ZFy7{HwXT+{#lh7Ml7}DQZE=>j#aP}JV|iOQ%iD4+Z!5CAtsA^8 z7CsaQhl}BE*ii9NAZThw8Vog)p zq~em?Cf@tH_c`x6?=tV1-YV}z@A3A@^LF#5^K|1eHmTmElx-=i&)~2jT z4kW#jFe%}buxC_)d6E)FrK~UyIjHl*ZzJ_7_A&XX`-~!&e8uM)ApuLZR?v_@x0)Dj&ft7C!m}9^`_fCVcu*g-a~B^UelO8TWX&==^KAe zJA~R|N}U!tLaXpi>zc=HuVwVYP&a?*9W!luZuQwsFaYjX*)I#ZakN5l$W?tg9yJ>yX z^2a;v?@jVt>bca3FJ%R>9%5{nXX_Cj#+*slQIYUYXBKb%6&i(%r;+Y_%%xM27g8@SMur{X_nrz6%LwwUuffvGUAD*26qv6YF8o;x#M7yv}U7 zwRl5j^4);9tn{*-`}e2vb%7a3EIW`@F6DOq%aKEVKn_{Xzg5j`_0il({~+`4O{|l} zv0{}d(+x+K;|(vC6ATxY6Ak~BWr~?6|Hxy`DJL6lE2kJf%NJ;wVajQSx60{;tIBf2 zPvs25No9qZL&{3SL*-1vJ>}_!Z^|meG36|~0#|KU;AYzuxH;UzzDUkBH?PZc_}}m~ z@;tlJb`d=BR(UaeaJjsc+tu%ti@8~SwY;30)$f;A@Q>v6@=Ckjw#2TtU2WIfuC?oJ z*W2~B8|-@9jfVHho8fx9`3l5^CG#& z%!uS(_|ao>pW#Guzquz|^2K49`Nt0UQ7&^BNzZJJ?3~69S4YqZ4B{NkQ06jUVa9K; z8NLQ_;?}6|Gbg%~K7JWk3@&GdY6<$aaJGBEO0XKN$IgT$1yoiSQ1gsT6Ktlg1a}AX z)GDy%kKfcofBdFZFi}T?v|yg@0!|JN)1_bnc2mI_*qsY5#C#dp03HF)fUTs`0J%M# z^{;fkQQVK*2N)qU+SwUEamKiT5t7MS7qav=Wr1BQSH; zPN0xhDh30YZw_TvHw>5IU<4QmjseGlUHIM29B>a|_X55<#oWgOmGCg{@i5=eBo23HeuH6d3May21W6LK{nSL@!v)H=R;^_IAr??;xZ! zU0^rZ1NMS_;1lpE>3jzEgU`Vi;4AFSS4_VL2f+{EN9=zBhrrL^7w{|i4g3!N071Bt z0Nkvj6wn|7L;??BrBOwL7{I!uiUSQmLl6%VKq7kwhP$1}+BO`Hm4R4pR*7Y8AeNPZ zSk?t%m01semAg_nqX0#Zg`&qo(PN?Lu~2jYMHf(X0Yw*3bOA+=g`&smIl!**qO+z8 zEzq3UFz0$@UNkmPv-R69`wCnzwNCseq#C<>;kxvl8IFitAMf?I_bocB(CG+ z%s&auy-tKSp_Cop*9Euna6iG6^0vfx?S#FdM=3d{o4U^bWo&IcEO3&B-{y9xbf za0|EMgmR-~`3 zeEabW8RvZWQ8q-62MHh%Gy=4%Yyy&khh$UqW}rDp0bbCC?{rTfo{8XG-f06#8%XM3 zBB4nnG`Wd19|ezr&EOT>UIp90Yv6V826z*^1-65?!Mk7wcn`b}J^&wrkHAjwG1vum zgFRp`*atoVUy|Pg;492uqkjXw1^))$1=k^KtV7mVhpe$q@-H*_6X1VQ@@K&RAmp#$ zH}E_70|fb|DW_PJ1PW*n0V071LnX#kVp)+<=2lO=bj_B#= zozOGTyP&JiJ~$Q30`tJx;2dx+I1ii; zE&vyTi@?QT5x5Fm4Xy!8!Og*~Nb_5f=C>lvZ$+BliZs7fZNiNcx9Z8@cbYoU)QP4} zbP}LWbTdGm=wv{h=$4>0pgy!0v;owIhL&jRL$?FehwcEn0?Mu_yUqlZU5^U>sE-4q zF^@q%9-IKif;qvh%q+Gtv)IbaVyj*p{6b$2t^ikpCEzM>HMj;`3$6p#gB!q7a3g^J zX!^dU-!nTo#O&mdz7yOXJizSa0JD<=%uWvImAK!Bz6yOc`Wp1L==YEL4I z!>fpY)&IxayTCVfT>0agD3yb7t<$nKS2{IRo6}dvF%`ev0%e(rZZPkbZ`A9_b&EE+G9J z>HjrH`wezgAEFH(Azj8^?6*i)kp3MB>ptvB8=!C50M0l5Cv!fm^H>#AW^h1^AXtw? z{3!GVLto%tLk$~3+K#jXX(!SyquPZbDx-#RhD>MGOGUKl+Gyb}2 z#$Q)v{B>oQ;t*t*{KryXAkh!;CCHTJyJ9FdIR`-C(64 z^d!<>Ae}_|4$?Dd*D0jGM0ytKEXw{A=~blHkj^3f4Cy@5KO$W~`Z?0;XzMSK-az^# z(wj(cA-#?CPe|_|{R-(K(mx};i}Wu@?;-sw()&pNhI9$(*GRuX4_}7%YCLkM4 zKsK6yY%~GcXacg)1Z1NL$VL+kr`y;^NSBd*i}X8iF6?$88%;3mcG-U+;gkuyqcq@H z;s?hXhm7I}#~O!>;s?hXhm7I}#~O!>G7cHV4~{hs8O0BdH4YiY4~{hs z8O0BdH4YhN95Tu{WR!8pD1LCPamXm+*nP!iR|<}x&cw8L+~&X;Tf2cg~j zIy9T4ufB#~q!pyycMEo@;<BX+@4AV`1%oa@k7_;gn)bWaRX7UA$(iUwO z@}MWd-vfPm0~nKdn~8>(I5i)lWn6cvt%6>Z@!GX``ZLsL{yUKdk?um;gtQrH3)0<4TamUQO<&Xg3V5DF`abHyxWk^^k3Bo_@d@zp z3Gnd=@bL-o@d@zp3Gnd=@bL-o@d@zp3Gnd=@bL-o@d@zp3Gnd=@bL-o@emK4#y=U( z60`q7nn3z=@1#VQBp* z>{q3D^QrJZUZ~MDX4qWOrDY}Q#j%!Xv(B28UR(x%&6=K}10dFo=Xi{#W}O}1-0re6 z7arrO#fsnbDAt09I=x;87)xJy=bbBA2Yt#HSX!0aT_t~j&+|!HSxHD8Nof%&X*t%+ z!c_$e3ky4PQ}W{@=FJ`J?~`nO{r!D6-|OpNTjyc2r>@Q;OP;#J)}$mWr6*%E@+0R& zCM`%zw`N3{^SznY8mHD?l4_U}7CnDH#)%2*%m6$;_0WB5w#SsjSnXDQOo`TNdgaP1 zhisqQ8c#1XNvCi69)BEG)MXfF`6#gkB^E%_orf~6l4z?7eW5hTk|Oc8S?wk07HYTE z75tXp+sg*(Zg*uC#m1IqmEB%@cqGSFnme*P+g0k^y@S28BWI!8P*|O=H|f%AiVc-Z za)+IEgWWmo%re-rG1h7Syh^%2ns#~*N=H+_iVil%^2$oky{u#G(MQL=d}OS#xv9Im zskw3Ni1BL&PaXW)kv%#?O?OY*bFIr4Rhx`^j-Vd`ts+1AP@AYFs)i8xX-6J;XqfjS?$u+1be3o?26Y z#<#S1zsnrEP5RUtWBuM$=z|A#hJ|N&tkelBJ1PxZ<;NSMZ3%%EP!wYt578yj=}1<5 zdiS%i{rh3JJT3p4rQh^1E2j~Y~!0g&`dfKimYr=-VcHq*wB_a%+A2!XpKri3x8)(TQgAN{5L zKFfdpV+>6hiZJ;Z`CHUyfl@k@nxoKf0p*C7eDgGI90{kk5Krgxrx@?lIv^#qpMJ^o zrBClO4Zk-`BmN1g@1{>$ee-Eb3N^hbDf$KFP?Adh;VY&wq+p4@oA9OQ<8%n)l>BF> zj8yOhWnK_JFvqgR`%j$MPpNJ3;HMV?5w%?=lT_mT?c4Dw@@MS65~smgLhqFHa5ZR6X<&W? z23x7kX1C`{A)ZT>@fl-|jg5-~rvejZu0e|}s*af+=duJ^$5bs{0)S<;l2HSr1#Y4x8#}2)S(fF8j2cL;4 z81WmBi$=W2#dFe_-`%^cF0xbNfh?j?tFH zmAFf^F;q787e7D#71LLa|NIxnkC=|Ib!_#`oAT50x0zPHiE`m6N9zjlHkU%2#eemY zW2R$|T>WqMbNL;XE4%(1If?U{k(1_?i@DOl9~k&%K3gTfz}}O;%X&|-hoW|!l82(8 z0+JvXUYBxVJ+i@~s#%_4qs6uix5e-UKyR;+XyxVO)k;Gb+>lQ=T7J#3AGnql6)i76 zlv`Mkuip{jT3OdOl;l{NRTvYNjakhlC5_f3YhF%<-BxSwyX^-l1DPo- z!k*G!Rb)s>Ow1rUnm`A|h>wNNj%JYE3cd!ezzGnG;k22)wV@^2G%{+MmsOqT>948j z@2l+Utg7tlGUg|Fz{vh!O0!fAEs9z+RJEnO#n95uKWMDLA|pA_W>k!t_zJ+Kh&X+| zgobfOLhRKY2i{-MveW0=+0xu!YuFu@RARGLTdmc$imLG4k+uCs&(I>{q9IT5a(6;X zVN!a1fuW#2y{a(TwY->GMKuxM4zx;D7w32`t8O|2GgjS!ws`WYZ3ffmh$*@`CD1IT zF_ttFn{(6WNy=9@OVkyIRxKdDFr{4{{7^tnBnOr+uME{voT*&UTl` z{~Guk=q1zzDFeNv)TOG#0^AYahCnB=YxM~Q>Mjb5_%giZXho(Bjd(7{PMgEUZM%HF zU2WpCvZKAKvZDiYsynKC$fNw(+TLVnYUdw>zX_wL8~FK*TCSp!79Scsc58IZl<@fc#xA2ToPuMzQ^2fgZ=|f!M58{iKr8DrGp`$o+@Vh|O3rmU za+6AXN;j=ovL$+Fcu{7i&5@B*zS_0TxU?(9>WEH_i(3#r$6&1~YFpUm$+V>{h>efa z%`v1`mv${f?ZgL8NDmSpScj#7vjPkn5=Tk82`j1|85uovC~0kV35y?i{P6)wWH)h{Tdwnt$wn4#Mvi9lHp zpMT=OcGLC)Pq1t9CU#6FzeERe(cKTTtkzqa_U4-EF4UQF_cpy%XR1S~jqIB|MbTf; zLa7X;X|;CS`D(3?qa9tsOD`VXX4-c2#g~rZ&*%Q9pZ0(L%rm@g<-BdlSWDF$ZAv4- z?nam~2@Iz)FW6E~@%b$&d!sXA)vYCt2CT$(FM!PiCE97-1nbsWm>c2~CE-?@1R2YR)F6zxjZ_yNSyK5xAW1VfM zZp5}W-Qp}TAUVETvc0Tis~3F zcdu_SG~8AdV~$MCN(dVw%1BzJ6&Czata$-xmCL49mz#H&-V)Rju)>AA8}I9?t8Y## z%Q*a@jN$T6Sp_RAz4sW)?`$y{%NuG63~7#-!^2TS&u)#fEv$|3ZFHkwG2W$q)MTL1 zv<_%#(_*n&80}oxkbLU;l^r|elb1}dKXi;eF8hWaVj4Cmf0w8vDXR=+F&<}7NfL)1 zdqVU_U|r&Zbiv|#>c$$p-sWakvMoORo9vQ&(qzae%c|+GuH9v<9BeYoEpBeEFqC_v z;v?9h9e))WA62@sEuw8xRbU)=@jlW?vYRRoSd~>Tu#8ZB3TGzaK9W6=v#Ez;e6yG-i~<#pNg0?^?KUSAB9` ze0*_6Y9kc+DyGEJk#Tha4#t+SmKUwdNRXJ`pnwG zh?>=fL$2KLTo?afo_uGxGoOD@&y&YO`IMe7Q4}fQZt5jOkghF;MoS3Xw1tgjxzy)X z4ZaprbfeERfIjc$@1o6Fo!(lD?yoWOE^n?@y1Z$iN_iD*6LordeSJB-0Q7v*q=EIo z6Dyia_gvFPs|qx0VA9X!RaE3XyC*SmkG~>Mo03Ih+_)mOPxy%7`NQYDT^(KSRC>!USE<3;fFkU9?+4rv|E05c4MLte`Z274(Xl zKr=IOoXkX|%NJ0Wd_mA(4Ehg{(oy?ZnM`MaJRVX-4m zc5T{wzkL1vy`W8lvP(tTWiG75BwV^^drmvhEt@uN+4_yn&TsfpfEn-Ky9o&7Pk=xJ z&zs3|b`0|a(qA(xVNuLBD!+GLyZ;86rMwyLQ0J*jdo}AYp!Rm2VL<8Fwhal$2g)qB- zV3l2_c|Y)k@`laVEMqpweFhTnEy@>YmPr!j!pxtN|BJ9sZpN)t&+BwlFJYeC3@^;* z!))|hP=UV;@aynoeSua)>{-DGXh4~D$Ftq;Y)4s{(dBfyD2corC&?*%#PGo)N?6R+ zh4%bths)*2F5UWwFF&m?%TZjCvwbVC8+9;QXTx2MR5w0Zm!OHm?E(VN=VkDpB3iFY zA8TF!t(2dhelE(vXM)}prM=h@qGzH}~F5H-@;7!N*_iSyTd$EE1b6&@ebo@00l<++-qx3cr2 z^9qwot(g_+W4;|N&3D)3Hdv!g#u|s)?Z_@GyAogGjSaUHI+C+v;|num&5averM(_c zXF+s$cwDS0)CkbxoODWQXa%Q*&nzw?5a+{+Evg6ag8-{Qbn0fZv|#P~9R+H#szFFL z2)f8?E{vj@jb=_*L3WU^^<~mKp`Ia$O2cJJLbZ?>b}mR0Y>Pok)Pa*dROJ3NSQfTDW#$w^Q|T%%n33dTjF21@pj zWDpRMtTePp(=%nM5|c9#8-c@Wz+cwV@FR9^z>8~6q~|R z3$toh7Zoh8$|_7Tn06bZ!;%x~_ir?AJi2hvW1HUm_oB+mqN4Kh^PA5<5dXl>Hr;u8 zZ`++aZE2Dv)6%fDF{){+*OX%N$WKH^yWK6fKhW0k_03V6k9Q8S{0?t~w}XG6Wl5N5 z^_XKBq+{5w^p)Ec&}#AR6pb=y9r#YgPD=-AvVK={TWM-pdU0LZZJy0Nc~!{;N$W;? zdq3K^G1pU@x2!6s&S@~tZ>z3enln&XknS|ES~VcQJ#enLsJI9{ovVQlCh9E!7j~7z zx$Sm$96nKtKF;lq)8iAXu3aA&r?=x1YFf8lueZDLncLMe$Kx(7&yI|2i;T=JFLit7 zv~>l>0{K@B^v!ok0KiOm2e*bgDigidj-6TJ;`*Ffw3_b*l7x3$N zudKsq3jv2EjQ5s+=V&g@0!OcGn3-EAtx-X#R|Jkdh$2C`6>AvaSfz2oY5Vmcl-J0i z(wY@PDB7>XX%+en@mVtPT;ZJFvpC5z8$1UmMrOi6Z{2LrH7Y34OSpB?E)|sCqJVzZ zI~#^B6*PcBFYUn@7M>e#5q3KThhCe=d>qd0jl4AmUgP>ZDECyTUh2Zhn-H9^Q*Od8 z-U;f})E(CY-HHTZ3w7kgObJ^MCcE(3css-QVW%KIvy zJ{5HR34;C-&7i(?@B-(pS~bP?!@_2k(m+9ByU9BTtw$J@cj3~YA5K~TMP zo9MU64>0z1oH~Nrr4e|>QYlc08HTrw+b_w|$1SL^Ra&y_S#gJ8@4I=~!Fq9TDy)A0 zw&=M}Fop!D7d3vllYLFrux+`Gt&IEaJZoPd9Z6JH@Xy$=C@ z7pJ^tgLeh#GZP*?wjA)de?0ox80@ma|iDu@I&6u-{*8uKZoGx=SHH|i#OlF-#q1}H-Cou zMEYzUJ>?cZjw^NwuBmYJE5|h*Dr(3;4X_%b-2%rt<(Gn*o&czEO%2t^p?rjL zsCIiDLAec&=f!jW-k;!Ynhwv=yf+IR^bLft(0eB=c<{EY4t zo`sUGDR5e~cz&!}XJ*a+F3toBJUwKU4CYT{ct60;t%$s(&?=#&>){PgaGHZ+&4why z-|E>};Am-gC^xl#L z;`tuH>ixq5ru|4K)+F8M!P>1j4ZsE9{6LC#MX3jPa3%opXNWG)3)z(yrELQ#pcP*T z76u=Q8|2$XxL?u^bKL2QM)4N-wXo^H zfUBRao`;)`4t%!w=#DR}kG(vGfAj{p1(uHyj0(KPpKP27)w6!h)BG(?&)ruP%1z^v zp1bsXR{e5Q$N+VTJ(b*n?exyM4+BP~X%xUhCO8MTHa?|?01%Jb+ zE!sNl^5UWYsV9%Qz)nx>Ekb6d~h{biqZZwYNxc0Via&VEXe$waX8-2k7j}Eq`u~vxph*n3Q8PP;NFchzE~zu z=YLD(+9>p)opv#eI>qGVE`!Ml_AQus6n(9F&lQ6m2P^5^<%M>*#206Zxp$od>L%~b zg?5jX+to5EAFDF5x}6<{_ANDxWh5@#k+CuB$Ukh|aKLwWhPNQBxuc^wtf`Z|kn>Nu zN*l4Kfj%RhxBWH=?^A)pItjWtT)TrwL3kX8XYl+#!5Qp8eia;j_2MjW^c7zj$YLJK zjlNPrX(SVFowTzlgqcRNfc}0}2ukz`Xs3{?A(6s5u0UzTg7Ye^iR0^*pnA8m58>8o z-kMBaW8Yel8#e49R4;Yn9C-*%?~-!srQMoe5`6MCa8VoQ#aSH7`fpKg{3B~La&xG5 z$GepG{{Z|JK^5!rPu`-u6_6;SLr~Tqt>9&iA*j?xcQw045pw$xk zPQknLX@dR+&}<2Pr$B%I13+=Mqet^w>J1LHk%b#8Xksdr!1-I2qpGv>`vmz?FA{xrcakftk%)MD3(GiTcDG7Et259I72#Oq4_Ih__xEfJ#*eL`%Gc z+kgPgk4Db#Vuk>VS`cD=*Kbc2X(J z&2y<727Z}STBf{fNYQ9R0reT{=PiQ-M}8~;sMLFndZ84fYlP+n&x_Gzq__Qh^7Ih) zc3uMdR6aJo#(R$2;e&9zspOftF=7;`lWg|DPdIeaIxL)IrNQYmXylZ>w7a<`l+ot|NcfX|20#iX}|4b2>MzI(Q|r)cg_c%CCO+msRS%*{?ui?^3#r`J12eZyTf zedQ@diQ#h-7C0Mhg{zD?_32p|&g>L(Vodn_sN!^MUR-ouYI0_JN4?y|o?mruLrzCw zPIZoHjzMpnJ9oabuBfOhkLU&OWIG^*p>wAC07dT~9OV8#0q>ui7pN~N|C`dMXmt_w zoOBzbC@$Qls`wBJjNNKa0{KBUruHUybLmpT&OHiv|6`v8?17mz4IZ3X zQ{jP`C7?932uomQ2`J4h4pnBBfYK-tP%*Qn;}tVVKuLz;)Io+i$w$rf-2c2sw53P# zv1`HHiHOEQa0htG$GnZDyp4UDClxI4IN)MB~ zbJ=)g3BAV7po2o|E3l7A=Ih2s)K`e0FW|&gM=-B-5@|Ao#XAWrph?USzB7Tvl~n7X zZ=g$(x{`|56jcvmqHxa`8rN`?gVlyDMQpKikX|s=mP`|lc@u;FnD(jen1A7JX{%hB zn3kG0XVJWNuXk}wx;G(JiqOV7qpaE8v584+X@%QW5tWdJIq#@wXxwLMiMPy6Ft=r7 z&5MgRfh9_axVjW;=s9T7us2ug=N2cjtP95hbL@Ld`}>ztauydmk=W98D^{*uyK=?4 z4zMb+Gtr`sC|VkJ17l)dfKLdu`=uwJ9DVXhwEXqg$vH5T58k`mUF1_piRUFXy#@Js zi6@_YY2d)Xi!b8iB~Y3I|ECwhHQlt+AUhy!Bl%tsK2U;fa_tJY4szFMvV0*+9Bi^? zy*Oi`Eh|N!QZnq7Ija_#=FZ(1$+BG0 zX;Ip$?C1pJ=9R{X+_JQ^lyt-Vu9o=h==3~Yag%LjXKaKy!<>?kmK+|n$XlElm1PNU zznwKmbHWlb=4$88(HT;c!nKH1%YB(hI}}ac?ck?mx8Oz|oIk*ST4AIB-Euh6@T@L@bA8XvXW7_0xd;DKJE>h!cOi+kLx7e73J%-HxPPmSu~vM9+6x3UZ>O zqM~z{6V6uEYh2>f$ul8i#ih*nnB;H+Ge=i?EQ{_jM;hrS2#Q2Z=S$}Ec>yaA_Wl@D z@P;B^Wg4*G@NexaT~jI>6KUTKmOTluKgkUg%hW9B~#yMrMxHn(xTYvK!KJ@@1)~r8?|bZSF(I){ZWBcUC7i*s^@d_+qkHO!V8AWot-2;Hb0N>KyiZe0F_NCgdh0 zjmQ|xPSj;g9+qmfg;>q-9)t}v#5@8Xl*Bkh-v`_%gXbLdSl~iu9nxxMKkKliy8fPr zhX0(?4*lAvZuEj9VwIKJFc+ZZ+OF`!=@XOQ2)qE>nws|9dFP%{cR_ynh7GK1=(+yE zfgL*rYP^MIWrbV%pBn-Bp6=kt;rLvzYWhb+gw{E|wDbUCy@{G9w0F#?`2j>s zqo?t}y@8%e&j`APiLM6_TaBJZ;HjCHy-hqt!|@bR^GQP5s5ydI^#vp$-9u}L!fpR> z{P?cp$B#TZ^eF!4`55k7LgYO7axB4I-H33yS#ah6hP9dpr3l=gLKy6B@K^?F1zu=hh{`#FQh5!i9T^&Wp8LaW(2PmpQYGaf-x~}3X{2zumpw&{ zX6&I84-Kz2twy_4`R;Kcqic?3131w|_S6{V7=Gvk@$n7#5ZKWE06wZWgj2qaoebdp zeAA{Gr2^O)N+~t)B1$dtHBn|G3hHqi4sp;a?}};@?@OLwCr|Dl+K>Oq(+2x`c8Z@n zq5e=#12-K#ee^KsXQ!B19)I;!{yy#k=0&{Us1^2@IHHAkGRxfd^=?HN!T~_u} ztNf(sNMO&={HIih$b?uU@aDy`Dh~Q!2#7V6uUqFxX_G`5EpgQl~a<�wq?iTUv^tzVXKqA4W=d} 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

oAiw~d>0}V16G1i3LdEp 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 NUQyaQ5&?U|ioJ^k!LBF@ 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%0D#_>tp8W$b2&zC%jcf>Pi^ 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 literal 0 HcmV?d00001 diff --git a/design/vault/fonts/ebgaramond-OFL.txt b/design/vault/fonts/ebgaramond-OFL.txt new file mode 100644 index 0000000..c1ec5e1 --- /dev/null +++ b/design/vault/fonts/ebgaramond-OFL.txt @@ -0,0 +1,93 @@ +Copyright 2017 The EB Garamond Project Authors (https://github.com/octaviopardo/EBGaramond12) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/design/vault/fonts/spacegrotesk-OFL.txt b/design/vault/fonts/spacegrotesk-OFL.txt new file mode 100644 index 0000000..cb512b9 --- /dev/null +++ b/design/vault/fonts/spacegrotesk-OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Space Grotesk Project Authors (https://github.com/floriankarsten/space-grotesk) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/design/vault/source.json b/design/vault/source.json new file mode 100644 index 0000000..48e698f --- /dev/null +++ b/design/vault/source.json @@ -0,0 +1,46 @@ +{ + "repository": "https://github.com/Monadic-DNA/Vault", + "revision": "58c9f56f8be5b091dddd002d0e422d2a96f3a931", + "assets": { + "art/brand-mark.svg": { + "path": "Assets.xcassets/images/logo.imageset/logo 2.svg", + "sha256": "8e8cdda3a51e26b4d659f0ba7b38248be8b6e6d9ba43e8d24b4fc7fa2add627c" + }, + "art/wordmark.svg": { + "path": "Assets.xcassets/images/header-text.imageset/headerText.svg", + "sha256": "bb2446dce2afcc1ab7c533192a4cc9d3b3dcb31c48a2451b18f913e73935f15a" + }, + "art/vault.svg": { + "path": "Assets.xcassets/images/vault.imageset/vault.svg", + "sha256": "30a185292e7c58d2feac0f7e264ef6806b2a43c83a2e899e641fe450beffb0cd" + }, + "art/discover.svg": { + "path": "Assets.xcassets/images/DiscoverCards.imageset/cards.svg", + "sha256": "3a821820a198ef03bf532b21b1ec116692a0c5b678666cd345103947913e4c07" + }, + "art/star.svg": { + "path": "Assets.xcassets/images/star.imageset/star.svg", + "sha256": "eaaea8fbd5da9439e6948b9162d1d3cde1712cd2ccac38a4e0be9828349b4fbe" + }, + "fonts/SpaceGrotesk-Light.ttf": { + "path": "Fonts/Space_Grotesk/static/SpaceGrotesk-Light.ttf", + "sha256": "4ea1b1687f9c1994228e842ef35941c72f125e97da80dacdcbecd9184d0ae185" + }, + "fonts/SpaceGrotesk-Regular.ttf": { + "path": "Fonts/Space_Grotesk/static/SpaceGrotesk-Regular.ttf", + "sha256": "637578d47b0e70e02b3eb5056847dd9add17bd683234d28f5d11a6cf66ff2725" + }, + "fonts/SpaceGrotesk-Bold.ttf": { + "path": "Fonts/Space_Grotesk/static/SpaceGrotesk-Bold.ttf", + "sha256": "8fb63865c6afd083723dc1775548306b7751f20397bebcb79646032c598c81b9" + }, + "fonts/EBGaramond-Medium.ttf": { + "path": "Fonts/EB_Garamond/static/EBGaramond-Medium.ttf", + "sha256": "4500a8d0526f64a9128c007122f2a0532184157122cdc2e650b12ef1d192a4e9" + }, + "app-icon.png": { + "path": "Assets.xcassets/AppIcon.appiconset/AppIcon-1024px.png", + "sha256": "b4667d40bae61305a258b1a6280468d4aaa6e5df40416fcc516906ca426bc348" + } + } +} diff --git a/scripts/sync-vault-design.py b/scripts/sync-vault-design.py new file mode 100644 index 0000000..8318311 --- /dev/null +++ b/scripts/sync-vault-design.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +"""Generate native resources from the checked-in Vault design sources (requires Inkscape).""" +import json +from pathlib import Path +import shutil +import subprocess + +ROOT = Path(__file__).resolve().parents[1] +SOURCE = ROOT / 'design/vault' +ANDROID = ROOT / 'apps/android/app/src/main/res' +IOS = ROOT / 'apps/ios/Explorer' +ASSETS = IOS / 'Assets.xcassets' +ASSETS.mkdir(parents=True, exist_ok=True) +(ASSETS / 'Contents.json').write_text(json.dumps({'info': {'author': 'xcode', 'version': 1}}, indent=2)+'\n') +for source in sorted((SOURCE / 'art').glob('*.svg')): + name = 'vault_' + source.stem.replace('-', '_') + android = ANDROID / 'drawable-nodpi' / (name+'.png') + android.parent.mkdir(parents=True, exist_ok=True) + subprocess.run(['inkscape', str(source), '--export-width=1000', '--export-filename='+str(android)], check=True, capture_output=True) + asset = ASSETS / (name+'.imageset') + asset.mkdir(exist_ok=True) + shutil.copyfile(android, asset / (name+'.png')) + (asset / 'Contents.json').write_text(json.dumps({'images': [{'filename': name+'.png', 'idiom':'universal'}], 'info':{'author':'xcode','version':1}}, indent=2)+'\n') +font_names = {'SpaceGrotesk-Light.ttf':'space_grotesk_light', 'SpaceGrotesk-Regular.ttf':'space_grotesk_regular', 'SpaceGrotesk-Bold.ttf':'space_grotesk_bold', 'EBGaramond-Medium.ttf':'eb_garamond_medium'} +for source, name in font_names.items(): + (ANDROID / 'font').mkdir(exist_ok=True) + (IOS / 'Fonts').mkdir(exist_ok=True) + shutil.copyfile(SOURCE / 'fonts' / source, ANDROID / 'font' / (name+'.ttf')) + shutil.copyfile(SOURCE / 'fonts' / source, IOS / 'Fonts' / source) +for source in sorted((SOURCE / 'fonts').glob('*-OFL.txt')): + (ANDROID / 'raw').mkdir(exist_ok=True) + (IOS / 'Licenses').mkdir(exist_ok=True) + shutil.copyfile(source, ANDROID / 'raw' / (source.stem.replace('-', '_') .lower()+'.txt')) + shutil.copyfile(source, IOS / 'Licenses' / source.name) +colors = json.loads((SOURCE / 'colors.json').read_text()) +kotlin = ['// Generated by scripts/sync-vault-design.py; edit design/vault/colors.json.', 'package com.monadicdna.explorer', '', 'import androidx.compose.ui.graphics.Color', 'import androidx.compose.ui.graphics.colorspace.ColorSpaces', '', 'object VaultColors {'] +for name, data in colors.items(): + asset = ASSETS / ('vault_'+name+'.colorset') + asset.mkdir(exist_ok=True) + (asset / 'Contents.json').write_text(json.dumps(data, indent=2)+'\n') + color = data['colors'][0]['color'] + comp = color['components'] + rgb = [int(comp[c], 16) / 255 if comp[c].startswith('0x') else float(comp[c]) for c in ['red','green','blue']] + space = 'DisplayP3' if color['color-space']=='display-p3' else 'Srgb' + kotlin.append(f' val {name} = Color({rgb[0]:.8f}f, {rgb[1]:.8f}f, {rgb[2]:.8f}f, colorSpace = ColorSpaces.{space})') +kotlin += ['}', ''] +(ROOT / 'apps/android/app/src/main/java/com/monadicdna/explorer/VaultColors.kt').write_text('\n'.join(kotlin)) + +icon = ASSETS / 'AppIcon.appiconset' +icon.mkdir(exist_ok=True) +shutil.copyfile(SOURCE / 'app-icon.png', icon / 'AppIcon.png') +(icon / 'Contents.json').write_text(json.dumps({'images': [{'filename': 'AppIcon.png', 'idiom': 'universal', 'platform': 'ios', 'size': '1024x1024'}], 'info': {'author': 'xcode', 'version': 1}}, indent=2)+'\n') +shutil.copyfile(SOURCE / 'app-icon.png', ANDROID / 'drawable-nodpi' / 'vault_app_icon.png') From 1fb82a4099baa3365e383799713d91f351acd97d Mon Sep 17 00:00:00 2001 From: Vishakh Vishakh Date: Wed, 21 Oct 2026 13:37:11 +0000 Subject: [PATCH 03/16] Document native visual verification and export iOS snapshots --- .github/workflows/native-clients.yml | 11 +++++++++++ .gitignore | 1 + docs/native-visual-style.md | 23 +++++++++++++++++++++++ docs/native-visuals/android-home.png | Bin 0 -> 233464 bytes docs/native-visuals/android-results.png | Bin 0 -> 41716 bytes 5 files changed, 35 insertions(+) create mode 100644 docs/native-visual-style.md create mode 100644 docs/native-visuals/android-home.png create mode 100644 docs/native-visuals/android-results.png diff --git a/.github/workflows/native-clients.yml b/.github/workflows/native-clients.yml index 4cf70b1..cbae2fa 100644 --- a/.github/workflows/native-clients.yml +++ b/.github/workflows/native-clients.yml @@ -55,6 +55,17 @@ jobs: simulator_id=$(xcrun simctl list devices available -j | python3 -c 'import json,sys; d=json.load(sys.stdin); print(next(v["udid"] for devices in d["devices"].values() for v in devices if v["name"].startswith("iPhone")))') xcodebuild -resultBundlePath apps/ios/ExplorerTests.xcresult -project apps/ios/Explorer.xcodeproj -scheme Explorer -destination "platform=iOS Simulator,id=$simulator_id" -derivedDataPath apps/ios/build test CODE_SIGNING_ALLOWED=NO + - name: Export iOS visual snapshots + if: always() + run: | + if [ -d apps/ios/ExplorerTests.xcresult ]; then + xcrun xcresulttool export attachments --path apps/ios/ExplorerTests.xcresult --output-path apps/ios/test-attachments + fi + - uses: actions/upload-artifact@v7 + if: always() + with: + name: explorer-ios-visual-snapshots + path: apps/ios/test-attachments - uses: actions/upload-artifact@v7 if: always() with: diff --git a/.gitignore b/.gitignore index 11c7b07..4da964d 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,4 @@ yarn-error.log* apps/android/.kotlin/ apps/ios/*.xcresult/ +apps/ios/test-attachments/ diff --git a/docs/native-visual-style.md b/docs/native-visual-style.md new file mode 100644 index 0000000..0775d50 --- /dev/null +++ b/docs/native-visual-style.md @@ -0,0 +1,23 @@ +# Native visual alignment with Vault + +Explorer's Android (Compose) and iOS (SwiftUI) apps share the visual language of [Monadic DNA Vault](https://github.com/Monadic-DNA/Vault/tree/58c9f56f8be5b091dddd002d0e422d2a96f3a931). They retain their own native layouts and Explorer functionality. + +| Element | Vault reference | Explorer implementation | +| --- | --- | --- | +| Brand | Header mark, white wordmark, charcoal background | Branded home panel and original app icon | +| Typography | Space Grotesk Light/Bold, EB Garamond Medium | Body, navigation, headings and serif result titles | +| Surfaces | Off-tone canvas, charcoal buttons, pastel trait cards | Native theme, capsule actions, 40-point result cards | +| Illustrations | Vault, DiscoverCards, geometric star | Vault/reports screens and result accents | +| Colors | Original sRGB / Display P3 assets | Generated Compose colors and SwiftUI asset catalog | + +Canonical artwork, font licenses, source paths/checksums, and the regeneration instructions live in [design/vault](../design/vault/README.md). App builds use checked-in resources and do not need the Vault checkout. + +## Validation + +Android debug assembly, Kotlin/JNI unit tests and lint passed. Both API 26 emulator tests passed after restyling, including import of the full public 23andMe sample and checking all 142 expected result scores. Home and populated results screenshots were visually inspected: + +| Home | Results with public sample | +| --- | --- | +| ![Vault-branded Android home](native-visuals/android-home.png) | ![Pastel Android result cards](native-visuals/android-results.png) | + +The iOS simulator build and all five XCTest tests passed in [CI run 39608592827](https://github.com/Monadic-DNA/Explorer/actions/runs/39608592827). The iOS `VaultDesignTests` verify that the actual app bundle contains all four fonts and five illustrations, and render the home panel and a result card with SwiftUI. CI exports the retained XCTest image attachments as `explorer-ios-visual-snapshots`, alongside the complete `explorer-ios-test-results` bundle. The iOS job also runs the existing native binding and public DNA sample tests. diff --git a/docs/native-visuals/android-home.png b/docs/native-visuals/android-home.png new file mode 100644 index 0000000000000000000000000000000000000000..0b83050a24ccdea5d034901e45abaa2184f09f2b GIT binary patch literal 233464 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Ξ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 z zL34!G6#da*q0OKSc3fg?NvjTY?5Xw7?HVTrHq|5=!FZ{PDv2YM?4tPM4o*h@NUUI` zgYk9z#$m8U)s7EWj7NtwfyXBfl6GB|Q_#v!`M{{nm! zllN=oLsV+&W?NYq3|XQhZ5|Pwq{ASj*zgX562V;lcGUPd51J*!<;oKYOOPYDEyfUcC4 zj{vauB__Ve{>7RkZlz+DpPe6-ES#e1sF>+V4sKFz`;GWM;$Sg!y55;tPr0;Jo2uE`OXKASsA} z=2L@xX7Y7bNOuxSa)UtsdT!McTj~kk#>OYW@Sr&e%hVVs%g8y3toY&{q}maoZ-7Sl zeK`-EcUFI>599?K@~^kwOVe$j|3KgcMg_DP=rzTRgOE2S0<{vTmyk2Vvi;k;J5SVF z>zLgXKjOXANdHynG$RjG7rw3)JBKC_8L?Nqy+iF<{2Ru`p3SFTRI}q(J&l+#dRQbB zcK_YEEjB`(a2Tcyv*qKjBJzz9mI?uQnjo7#YlJ$6NI(*>8YDRDYim`+@4~s(3;hOR zzWW{TjF*odT&%9($7&DsXmiH#ULZbEi?9FE%iicFncyc)&eUU`P7=UbEXWrRC;&yN zP!q#H;!b_uRq_~Z(IB@2!3J4`s_XA^vt{#&_)Nk*?AdA0Z;YAy48(bBTO>H6ctegH zsTH)?Fh(WZ)|{QW@CP90AtNjev_*+TF2E)b6xkaDTyARs*BCC0C6d@RK_7Rn`l~*z z9V}+meS8Y)HbSKXmh}7KPpMs7%nTTyMgf}$7${}aZXg zpegeMt3)I@#2whpVryf?fqSq%NF*$*K?GLd07SJw5~y+BCVo`N-W1l4NFW-=?S4c_ z^1=wNZFY@my6hP2ULe*OKRggCP?++_GgbuDi)99CCypjQh9d!!RkP)vZyXlF>a|QJ z!Y~v^6Rk~*@_N-*DvYa6!(i{30r*_3(U*$NrTAmvAPi+YVO)aQMZ~S)8j}~xUM9)0_#-adH4bK>Pyav13n;1;YMF;>A@{&!ixyke?Y9Cs3e12H4S z-s>M&nP~8oz2Ra^SEkc2WbMKe+ZddN93kR(D3dgOm3eBH=$*}@ODQxz{I4~1c5)($ z4jyf&MW};?_!>8tC8-O84O5~Z{juUzJ+x*#1Q#FEyMVvcZ>)P}7M0!)XPg=T*1?7> zgXxYl7D#W)ZOw}ERQgQ?N1WN7Q!n`k?y=>FOUc_n)clE?h!4mL_(9G=MH}b*UMXjH_BLZk8O;2ileg)GP~B5{sv26 z?26Hun9)JL7|5Y-X;&Q39GX`2pD&-(7w4$Fd7u5;^o=tD!Z)BSn4Og|Fs$wDypZ?b z<$U7}HpfkDYh024#0NS%{4S?3*4K0zQQ@oJeNPSd<}S@I3_-l#_Axjo8L(noC0{F^ zoyaP1+>K-aBn`bUaZm-U=B_gnmJ{ItOHbD6 z*B4dSPv3G{)1wxxrkYvo&7RpyTlOT}Y4969>b@M#I?js`-9?}jvVC<{cT(0d(O1lu?PL&TXyt?#WJ)Fas1oGzAo;H zcz%x@CnCGX=AXd}RQm(6hOb5#9sewr@5l=Rll0AW<1Esqh115832M@|sH5a`b3aBs z-Ip=mrcg9rxwt&D$cL3=Oh;Kl8zSnw|0GYov4nBK49kMqHB4ouEY_OVqu1w1YZfa* zs%twp{)V$j^v*ldhy6MmSMFXT$zU|Z4b~augosTp3wLU6ebA8m_ko+=p9sfCbKiO- z%}IYyY~k5O)4b>3i|d$K!iV`Tj(W4No#JnMZ}_so*P^CI>illg&ysoP4q!5yoav>Z zp{g=45a1jtbSYkxZ93f+NEuiF)n7i*=AWD$P+qa!t~$SZ_`$8NPI;O}lREbVkjcvU zSHF|<1Xygk2*LH2xlILp2tco8OPpV=T9;j`>33f>dMBRIHtIuRnf<2Vxur=9ln+*; zYDEb-2c9w)uN*t=81fEgRkEC zaSV9cr)|)PRV;RM4NM8VK}`r~^qE1>kRri}&(wf%R?u}`Kb~y4(Pefu+G#KHfrQl$ zX)>07T>F<#+ZnBxrVX90=n~)7E^ryPD@NH6=Zo+$fq=1RRPb-9FU`h_^fK;NasU8$ zBFc%TX_yTh74x$li+;{LtZmM3+zt?~u$AT*a1rUlGD)6#O)eXIA&`T~S7Ln{ zxP0K`(s5~@Sm>DIM?Ys_*0xF$2~L9hcdZ<>V2orTdsS5Yq9vJN`;R)$fA6keU9`F| z;pdfLp%R+$7F7wbk?jBzf!#awR88uN3YTG4gc~ItHu3ldNS6UpW#Ko=K^G!S@xQ>U z=jRxi(g@MB?5#&E@HvTZg0YKGRtFDiTO_U7m1_%UggI=GO`zaFVQ?r;6#Q}A=dE(l zUC66|MbzOc>Y?KtTl7F&v)ND$TWCnI0+J zb*eBTT!na9I8bN3o6p|=guV%!XGS1unmg`nJUapfd;Q#jI_zYeD5&75-w1ZJ%vPIx zWBC0(z<1+g65)*Mo4>%uy7~>?IncM_i@z|^c&JaH8AJrcYpz&G(})*}zuKfO3{&u- zz5+EZP88me1JgrVqw_SxS{#x9pPGa(rxwp47WrXVT>bBWM8fghJ--;Vw006UE3h^v z3Tt4hxNzVp$H}=t;HQ~TQ<^vy_s{Km8V?>WG{{_LApB-{VS)n|$lkQG^OZ^J>eb=H zpF$wchG!=nUoqNM9X(^I6?b~?DKz-=*<1Wv@T@AcZi`HsxzpeF+zacAI0*@ zRDCP}214hq0G<1tLWwQ-r%FC^B51Rq;VS5604oE+o(PEY2R5t}ls(Zz3}-_2YSMq> zqA3UoMD_fzt)Y5tyt>YP{UnOOBk=;CwRQ*-xfEyo|uh>IWv0aeSdt_}klW!5$6 zvt@%!=YNIy(o2D8P1a~lt7Hz0hslKQrKMrs&5c40RSUK_LRlExSlZqfKHs0&4)Ze} zA|?cZG7}Sf`1pPe4Oj}moC6^A##6x-u8ySH|Nf*X8+1c~Sy_oKBdBnmcKk$a)Oz@; z-}FG5w&=$CRXJ8o0{KCUAgMlS56RIY+5(`5Oi<3ZJ-tRs`KPSU_PRwLvmw-@Hj4%Q z?%PrsVXcV*j!aF9+$0_)DS6;{d&HWOWrQGmkP&v-LwCfAA3-RsXMJq)dBIq4pYDYA3 zFoeM-)zh}dnd3k6gNPp8jDIyHwf-j;ohC4GJV+c%jjAh91U1S0?@TfAZarCxbsm{f zBh5hIvIP>*9ij))*>QRWsVi#OAaiqwL>33n5~-)9bgZivBsl5uuL;fzO!U8hX9pb8 z^f(yWo>#AA{tcaLZ4qol2&R2n$(ay40V=HKgIkSJTw!3VX+hI4bTVLR%Y7yNDdzPl znx|Pe5fP8OrKEo&@8Qw2doAx6bCGOz?y)tOPQP`B!-0CpCR~#C9%dv zXXZ>O6|tT%8O2AZz0P`&j0|LO9E?yU0-fpXe2*RxO9)jo?%k{`nE^HRYMvhRnxYY$ z+Sp>4xji+y3@$C&@ms^ve-`g`vHm23l^_&n^OfDiFQPvGyO7qUSM-;`G<-`?{ zZ+yP#GJ)X>x7gv@lie?T8%}&0ay+knRkWZmz!~gtq3#N2VvFPR7qhopxWFuUkaelm z5wf+;F~N-3qH~fcX3#O>g-cwH!5IN*37Rx)Gp~KYJB%gG@YsBpCyI&H^y30jIeO={ zh(#*A)J$8NGtob<*-O(dM+`48esPc|{QAMYzXW>OO^o~@pG5Bi5g6eQjt^Qr%w~_q z{azMfX^Tv08Nrb_I`0E^9zIyPgw>dX4>>AtV99X%X|hHA4Ui0+BcRJ)RyR(C(a;vj z;QA*QdEnFuY!Zbw=nC-6pZ+_>?D^;WE+Q}CM!gl*;7il9__=SupUROJ2XVpkLve?} z!Nze+>$#A$&3SnztMa*=@&3gp3)$nVeXp;Mp+-U(h}UW_&x>P$*doA5|97U~rzZ+? zyx4`go?LYGP}VkVciniu&ePo&To%r8xtQJF(T|5ExbjJ^+hAK)v=8> z_(BZSM?kv5{{V#+a7&{Ju10J{b`3RDtsvHQb`crnU^b~8y1P+#{9gJ+!KbpfaOskf zyG#2l$$XYD_wt*(8>O(3Ps2hpG z;S{l6GMJ~jCH1|`#MlqRHcyd{sbDY44>E#h2kVQT2`||^o3~fFVU`PO(T46*JMR1A zTgPij+jlV>r4wTR_F;G1ksa}=6?FggufV|&e;SJxU>v%AfXz6Arb|Xg|3i4dyGQzx zQ8%MKl|I(|bK5vs!w{n|Rk+`whv`$JqtEq4UnGekY#<7nqLT$6RtK#x>w4^H-GAEQ-_k)n0$u=k8{ZlY5|)xEMM@J`|%;vL;>{D1vp>i=cWhuaVD{eMDpcgOy#1My#*di}$Mh;j!%+J^54R-F<5 zzpDY;;^iOi4esLqzrXawOO5;gFBjndTMuU^X`b5m7}^eupyg$)l4U=P$dhrArDw5X zAro;e4e4UcKOb&c%`D9sPff}F*z&sW`gj?R;M?Jm|Ih}a<`8ourRY=(cew}KoIj8% z#K%-G?WQh#d%6E*3)4K6A03EcNIpvV#v|2a1sSu3{%@al+}ziF^d7EsfB2ViiwOWm z&!OXyWLg{NDom7aWNBjgEpe3QM7=xzEj8s^>_tP-xr^CX**t`QPJb z$Mmb#1qs^&d>o3}F6{&41xgo!7%IuMh+I{W$LRyz(0&5y1`Jd;C{1Ia3Ika+OfMWR zpp6k^i>Q%y;|`s+v>R|{YFG&?hPje~xH~CjE@h}p5{De{E>Kt@Io=2^-3;~*XVmLx zh8U)dHZlAQj5$Gq!Jrqniy~jB=#_naNB&*xICr2xKHgwW?bf$pj-~694K^2!r42&> zp(Z+%@eK7Ple)`dYgH)o&@J4+TN__;_O|eKT9HTrDd(KUmIy_eqz}$JSO6WmxErFe z2-n<)l1hr#{#6TN>6a$Xc9Vq#1gEu(5I1I_o$5a&icRS`jJYu`W_YQ4`q68xhx*)_ z445@6ERE+9sWtWnIMJX)_Fm{A-AArDMBBuK32E@jnQHN8=32dXBGb)S0^|x@?znek zktgWE;8O91nKD|_hQO3&Mx-_hj#m%FB0WC7Lto2h2kAT>KWkLP_Vcj<0t4f@)o@V< z=(4wFIQ59U zDa#Pt6NatX9%dHH&A+2sZVU9ns+346W>!_Ihd(C)viZxBBgirq9CB2*Fk}MkjwgS$ zw3omKSe0FNAEa~V1N)o-LpTTuJ=a!d*ZMup1uU%rME7H|QgqobGmpOfISi6w{| zhnOQE5VfYr5j!*PC{^22Cfz7B^}v0a9#gd6gQRb0sf^Bq2^?O`p&)+E+^6b-jSw^B z*)_A~EFAc&d|KY6V71wf+6S{hT|sX6E4lTZ3W^i!-ym+s~P^@SZYC9Ux=`jO9rWbxNtO%Gx=Zvd- zDPv7bR(2ON8e zt_;`l{Lh+GDMGa=g25HF;^-NX znCdf0&)diT+ql`Ey9CaI8VVgP4(5mxMXn=8W@t9L@SDBfNY!=HyY-nl^Ix4(`R+ZnqJz(M3>^@2R#|BV zn8+H^bqqIeYk&XfkZTbI{sD1&$nC+&0PDv_d%3w&gB`pkw14ICgW&_vdd!VFr~L0) z3Wg5WYT7{;31uANg@74If4}6h$ER9%O#RsZLjdl88RsNL*dh=^GUy!OgNQ|3Bb$1P zU`YMH0_U&MZr%a33z(q-r7n05{wv7ZN8*P)sKta?8S#T*%z=W|-3-eY=tYBd{`}h7 zI2yb2GK}%N|CQdSp8f5tO$51vFlz&E1pN>VYVhH!W2t?L(03z!8%I1|;)TLp>ZSAw z+@hCE*`Zwd$FF#I{!eO8KdQ^|S-g!K^)mS44)XQBDvdyGC7K`*s`cQ+P=yTOqy`4M zZU?SsJPlVj5M?`xd3!PS{`e-_R$WXpATjftIQ)8@D@mRW$RIx09x_RPUkq#Jj?a2y z$mDX5%D|94=Nz!gmJx!A65HrHJQdnSG`MP~=giB3+ zGafbwB-mQ{iTS5OT()VkGp4qT;5&Vv*^kTeBUy%M2(}d2Rw)+YdbGIsiJ~>tT)vMu zwO9+8XG5$EmWIYj^0s59afi*DzS4dgJJT2{X0-Cd@!Gw|^WKg(8z)uo z@v=+RTuUVXJ7Rb$XZYsm55*u$k@{O11}XVPM*btSI7Muf?o;kLvEehg*)(m5e5aw| z#{Bwxg^gZtM#VY;dF3@lriuF+gleSWfuNDgjJG1U2PToYP@w1t?yOCF-}q}D%nQD3 z)EgkuV7OuL>d+&P#SM8VGRTCQtRUYD0Ln;BHt8+#)o$eK{(m!EGPGiHDU294V=)cz zoacT6uSxffsAGUCxxD)9?;e#%2E47Bnx7B*Mc?DUPTcCiC5$EeESDMU(QZ1grk<&7 z0iz4q83Y$fG)}K0cK42zpUe3|O~+gU<|i-Clp3Gl#!ipctelUom$q(wNsEI7Xfxmu zEUl}h>SB~)k!^ii4PsjoR?(0Sg@UCW?=gqds zYJUd_^6+=C`F$WJF0*yI+uck{j%W2~-zVHYu#UtMp1Q9v*#yxCPjr8YRDfsGBGeS< z=Lipn>dDF?*X$jML@G81_9JG&Z|D5F3PUWkzZCqiFFuQV0tXCa8cL)VWNv=X*H6@Vk5(lrplE^U`yfm9uXylJOJvhrCMJ8x0_V!vvckl!$!?d!nEB(XVUe0P{et(*Qyzur?*2FV?&5L$7Zx zfDXLgJ9o|;zpisysbra?r6fsh4p)AHk^(D{Q@h53H}TDs5}*RCFD8`<3p>~;V1=^i zfp3Gs3xS}ntyRshHO*J8g)L33=0H2p-#xkJp~x450tAUBh3VT$$0IHE%KN4-O&b%) z^iJ?QsL1w8vyKLyTa;^RH5G04 z$VvkE2!Aj8WZI(T+IR43AYgY`LwwwavjZE;AbTG)WrXgaeT*{mB9)p4>Q|mbTTVE+zFq42N+fzUb~TNuK%PXC&)fk3j;fG}S}Ji~ zcVO+M^=jeJ2fAzxT_0fvt}aYKBYk%^&JNXsBb0@^lQS#lAJj8bF34(G7m==COwOBl zeX^fv{YTNcGCT;vqV>lQP3fqS>PFo)%O8*`0ToC4h(a;nb7ncV(VBW0k{LLQ0Jt-j z;6wWbkQ0bmOd-Ps3FL>K(d(GHuuD$;VcWsrrq^|~E{caRjT955N@89U)G{%2n|j&~?N>`1 z>_w^Bp>s*nAtRI9v-E~$0Oyj?@egqt4+*mzd^>9^49lP#q+~>a zs~%;lj?Rt@vR`d&dk<`5{ertDc}LlaN^#*|*7C9_rCI1gAiyD(zDYdEo9}DU1Qq)M z95Jt_r}GtdOT?4?^p<<8M;E3ce-|aG{8?Zm%@<@7ZP(fT-}@Ik22}TW%#{l~jZ|-# ze>C1Ua4=F`Q_U|C_xCya4HLU?b-A~HCTvao8F#g@nc%#{pn;WLtnZj@}^_NRQ8xCt=K<~JMZ->_x$xg0pTmNd5t8h#E zgLK+i=uOfd9m-r^bt~`V9Z4_A{YeC62k9`OK?4Wxywv%^ty1C2TA~?;^<~s{q>q_2tt9au(*8*p!Av6{g?aI1Ru^#Qww&-d`$m|KN)2pKsqj(Tl&q$s6Po-cr3| zY3tTCWpCJ?7;;RSKc;Nl5jb#^xUCWMyh_fnsGrM zAg4<>aE@y0tN`qpta?E`@?StsWZ(%JI1b<>0KrDBxv1EzC0X~1-wUJ5C~V0FCbV{y zm`iffOC5YQwA!a8aegagoPD(MjnD_x;<7}aY-!?((+aW1 zyS0bzVdxaCSyJV{Z;QyOGFGNO~% z80Oj+rwXnbcg4H^48lHl3Nw*n+EY>9uvOkHub*UMCMQ z?~n^jq|54P{tEWkwzGQsTIuHS$4sFQXqdkV)SX;}+)8_kKWSjn3<7sdD~T=xr5_ZB zM1MFjL3Ld$|K6B-E@B7;Mg?rhU>*XBAm)k~R-h=tMFh?@E<<9-9}1xqnu4g;{oZ^_kQQBw z5%Bj6t*=jj6&j{ihv9mMI{K?e)MGmMsyIsdJdPP37r#(=vg=xRO9hUO#fW9I@>e8x z5GcI2mhry^4*}aa{y0rcAw;RFl*^+)z6je!GF6dXJQA!WN!N#47?zXR6%uY%M3rV5y`B$RgFPDtC*jMP+7cB8-=)!UL9jPJ___CW(@_ z8*F2d3m%MyeqzfNzcK7;R87zZfb{q~+dpuA*0H*zqyetC(n;Y%uRxCm5#!zYPxPH1 zz2-?yIVjbymByCstd@4aEM6r_`rCK%bYk za%+22L2;pZxSs0w>reW&AMF~mU$*=8zjdt3jOnEQ_lF|c6Gg9e+5USYA zVc`RrAeEfIB%k87r$h?v8BXH-!op}|RG_(haH^YDB`onp<&CT?93_mKwmCPQU*6v! zxZdF(+c?zkzfPUZ={4e?)@(j8udS}Jk^ShALxt(c?QnS8$22!LpY7U|->VavL#kw6 zxV)_4Vl%jHXmU;In`tqvf8!NSXERNi)T$~eO>j4G3Z2N48~Ra&!$4g$10sVDJzNjx ze*=pTG8MJF)d3y4ozp}{syo$yc$NF+ovktD~(Xyw7LS@e*zRD47aNes|gbH>y z2>J#|Re1vICPE}}ockQV^;L0y8x|D$?AEdHfx;Xu{PIpz!Yhuz(+Ex-0Ch1+`1BHY zDD*3U&)V!iXNSquxE-iR#Rjkj!n@&AyeO+=rZ6wZ3+UZL#8Q%~Zmq zT#7DxREWpNti{5{P@&Gl%kI12X2PQQ=k%U{-!=0caa3F=48WQI?tU0im^r*^F7Kro zFwnDGaep3M%L0CH{Hry!Wq5Ak1r3x>RzbO^3DrebBoiO*Kw>~6sUfJwzU>|?9KL3I z+@j?-Ms~S$)9$(2PxK7owz$tT#t#7Cdv$t+-PeS(DaPAf}1QqalCC=V&7ZU<)XbQx7Qwuq!xcWM-J^!yr2^V*a{3IP@PCcD4~yTOqb?}6OLV3-bK-AVTuF%?vEB=N z3>kxc1o~v28?bYgM8ZJxR`U<(w5aEgz^#FKL2oo`?D`sfoY6TW`@=w-di*^}&c@y( z<1GnvpL1Lgz`lld1LUpBtwZ)M%BR`4mrw(YK}aZIZV z16pAIdHK9d(%Hf!gg_Zf95xg&-%-O}m;~YBdg1)cc>MACPXCjl>NTB{b8a5h^Q02e z>hR7237X^NfbJDz9$CsS&tAU%RYj>xb4*S1NNKOe13e`4Fco}&l>x5S;JQvIY{Bm^NQT=QRnseo zCI2k0oXu^F5eZsaO9GjOq(qlooC^sIf%TBR6d9Y)rg&tfM)iNW0DNl$BSRKL zBY&LxGcIfLV2|JyOGr2aU^vyqm{+~Gou0vDEK<1M zJ)xGz!O*aR=GRMwiJGkzKmm`>;(6^$J`8y)H}7?poL?i_RU1vyLxr5>#BB zM}L-OLxfWfxlu#OBCXq=eN)AE(%WTS?Ts`8?uJ2Zz{(lfvK$)OUO24d$Y!|Uh5<7) zPeExwQa+z$_8~^{cP(A`n3j8%=MLXeSTxaEyS(hKBypMPD4iE`mUXK8W0~u=NiJqU zbgSGKTf+WyDF|R*J2ti%P+O3D>z#M=aPYYuzVt4;dfAM^A5yIklO)f_1J1&ywKT+T zoHgT6ci9!AC&upf`t1b`LF>|%{S)IdLU>RCDS&%lM}Ff}8_fd=AVdY@b3 z-G?0R=Vb`rH&KOBKdfV%5x4+oRuBn3z4ZM>SJ;@_&*mz^g_i%3>*Oy7QqsGd>cTLS zuf06)?FZS{jrz1dMWS;)m?W}2tMw3CTTYoP2Utwe<@bt&(9ZzZ)#}8>yA=|=tHHTc z)h_{$07!&p@BDV0c;2rioS8kHe`Ah#6IHQ)HM2<$si`PHqV1h{kaa%Gd8dU8{ebRU z#_=8Fvq9dwP(t5*|K`O_%6xYF7*v-I^7Od$$7d^Ijyf~BXrB^$Ydn<@xR?~|AE@JC zM>*};TmCUTMyk(gveS#U;yvY`#a9Q_N2K$mI5cKuwvhr>B4%DjLdXO05new`p+N*r z@rYpr&m9~*ZBf({E`BgSQpBWQ?aDWg>9pJ5rn#}h2_AFb;#LhfXlTG^uGX&~0DL|*Q2%ih+Ss4h`d0Y&=^iOPhl99o?BapZlB)gUr_q+5Fla9PL(Zi7aKL8Mw%h_Xe}B^|g3PW# zvn3$3f+S#>pBJ1q-4iU&BkbOjcJ$)~S&YB*{!@4&gH8>+XPaE=8*kqOe^6V!m7<_m zZR%f5VlJTXR~VmsQV?mKaaHf!uhXC87@__KB`>Cs_LO37ZZ7!^r{-2EPI~kmG-lRy zR&A1h{g~!G1p9-URc(ur{wFk@ep zNsi!-ifd8U5l1lSjo%r*M5kJPCo=7$ujj(17xCI^T;z{fG1U)Fs_qh)3dlM0PDQ}g zX=!AnaZgg4I|azj1W`G*k?0(-bd0jMJUYr7%FiBp{BfN52wA>V!}IlQ@|?_zSkRDo z#1u}&%T+9U&K-2VQD0CjI@oM+3|c@4BKfrLjr(7zPiYW*8Fj6Ef`c8&ZJ9w!0?zMW zno6eflGm#+9C6zWcTtZ|znl*Mow95Vvu!5SnO_%l)w|+$VSgiW4f8OYZ5b&mWO$L# zD=ef-?h!cF#Rz&ga9ihU0k2t_1JVrJk~vq8F8keu5-?pk%PRaUo4??Q4*q=fCOt$2;k;{tJJAjfL*B5{YvE&g&kfq7?b_qYkOjMfdw=C+%vE~K+n~A zWzj2FNO)Q`;JAU|hpXUC!nz-AORo50_P!6+j1|T$`}t3TCDkyr8Bzmc5Ub)Dxt{iy z?oBEjRABxX-e&JRq;?!L;o4t$7V9>pzUxaDOqhHFT4!VeM3D%Zef6Cl^lMj11yUNxG z(Uot*Z?x&mnU3_-^Wt~^L{@Nsql7zStI{vOU;eDj_I8*pP)Qtr)U}*Drg~FDIQdNL z-@a59l@HAmtBDfNVwtZlIP&kgytZEGVb|yQ@Z$Y}buu+J%FVyapZ1-)A>yE=u5r!i zOjlCYv+S|#HJ%yr5jVr;a|UNpbI#ek`|H&7RpS)f{5H}2W~5MNI2?_Cb=up1MBVga zJN3~(%BhN$ATU=f9VaN@Di2aPYjnZ9%5CkE?6QiMhVx^s-df4s;8 zkRnKp>U!W!^VnH)#ql?x^K@hb^217dYW8}a-bP1-8$31TXCVb&77v`3T$9(#`xwc0 zm+yuy{M+J80y622ym~+H)37x<83Y+knZ?Cb72OyoYpoNl5@9Y2zos)`C{7669W2h- z=8f&}Qpz|u{o|#>%Xh4`1;0F&kKU`Oj(wv|;bQdTl?^(o^lerWmv zsc?tdU!MHf-RIOe)*+-wV(hZ$tVyZIc>2lpv3qxPy_WK8DHJNIStcu|OI`O&YP_M? zWXDR`mc&`l-}tdvBi3&K7L_B1f1~ zh;Z7tKebb~i@&RXb!lfF{dW1(Z|%I~{#$HJ;t$>(^4+zj#r3D_igJtAAB4Mm1Vvml zWuf$qEBoj}?}=T1cv$Ir*gO50Gz)i*8oMv_n^a5;%bAeJ3BlHd|HIy!hf}%s@uQ27 z%t{e5he{EOj43i?tcc1yrHq;9dCpKm5=x;>8B%1PLJ}$!GE-DCXP(Yywcq!=zw_Vu z`&?&V>)N|*Z)>gRdG7mre}~UtMGMJC#H9x`rAyV<0BPeS>ptdd?=_hBwK5f9R7^W@qO z{m~nzD7hufqiS5qa{^NdhSn0=wpObxzCv?o z=l$rQDu?@R%84JG7-G7nN~K#ul~;b_kJ#JqL^U7l7Y2QH{E{n`vK(;el+`9U;J)U^pJS-+_yjk_>`q zV`EepP}(im@XQ# zN%npAG?KS(jxf-+B_kBAVQupA_xikN3L$*(=gQ7gqAl4=aNoj9f-M(VltIo{8AriE z{@nu%qwGXuUFuuXrzvA=OVhKh!u}_^W@R`grj|Q9s%oNk26T)off*pwipHI0^Omps zA1<~$4-}Kp+JX_bi%%akF#7ovhm|wB`}{GGaI364a{VS78fDO8()1CUKDw>D`OJo2 ztRPi9U!3>5E4vLA0q>JKe_$sRJYBb)vz}aAMs4J#2d$GNpEfCBX98KG2B4(klI0gt3n65n(k z$6fr}wy(2}JbgeQNSqv+`-Kb#t%HVKDdUA))e(WWq0_NP@@-9W|syHD* zvvQJNM}66sGT~Y|rh9KN3LQTDP%rPq{x^r0)*fA%I^7vIRZ_DucC>nJYOj@*RbK}O zcSwAy*vrB4$~y3Y?3rX)Xry+DY1WXi$2GUpUgR7-dOdc3s~>SDI+tT!-@fIe->IUc z!$6k@!VSR|55oGhZlLL1bZ&u!(7$x)b>9`}iOjtwY)i*y!NVGxppeq+LS>D24gXr!BB zVxCKI9@%I8_}TX2Vsa*`Vio@L85+ED^l}C&w<}rbVAe`Io-GyCNq08=h74;AN*;{a z#Hy2?y-WM@XiUgQk;~!!lL;xFTOwoQ;|~Re*l=<@=#}*vluo0=oB}U8dIKp@!kZhl zZ7dUR72Si@&CdMJE;0f;l@m@a&%SFmag$1O)~Fk%B|pvWrqgC$YY?mtMQ{C^$AX@I zz6NDiROsl7<$AdtUe_tu$4N>;US~oHTtJ=4%sXmFLr&=piAwFy3_vB51||d_Shs2# zy(PjiVecPTY;R_8SeE)6eR#tmgU=a#)3`CCM+c{!weQqgFRj(pahnxA+VER&{S(AS z_HA(Ccemt<@5pq9=?_dxG#S=@n@0}n7Y(h#T!Y?kt0!Y}bj^&cQ^wm^okDcwTYT{% z=h_jAU0205q`y4+mFwGbV(9t)+*%zyu=w0t2ZQRkP`{$Tw=**2^1x9~`!Qcf_0Gzo z8-j8@;ldGxPv1ZK$5x=ou6JMH+vgENrGaxj)Mx8oU$6c#A-&>USFA-!^5t~oc3wG& zk|e{m9onDcQ(cd)lzTEvT~*Tsz?&ts{$}spRC3AkDerpL{l(L9YFQ}Uek^jHn678T z!p%F{NJ96)X6CVp%op_YG3L$0}x86UrqRxslA(<(_3`Ij;{|Nx>s4t9@o>jJYY1dpAj)%ezuNw=<26F zV0lp-7*%=2D90tuqNuCL`+;3ho-e(%7yWqj-#q5W4#VRDN|_h`dEWCoG#v=6I^yTo z491xi!P_Tl*U5OuK^l+FjuzZ%wM5fic;nvwmeJT_-{8sN*!|CCdCz0_4Nn3je;jj- z2NM*0kyT>}O=RiYImgRjYmzK%tk6lZytzgcX^%@|8WC~v{arm?$vD$n>HzX3)cgZb zpe}F7L1{wecJrij!!}~hvNc(=kv7k+C7149#Szt*nfld-13Fugiha-e2YY)#w?f+H zy3Hi;BmwBJ(E4}(80=;jZamNQ#bG}~{4Mq8MIUowo=^^9gX!$nD_F`L*En z&}JKA#+w^M@6wO_)d?XIfqN&@rBX)Ds!uIlEHDCqcW7<8reemAo}we!)5R#r@x_gH zy%}Ze*gM}2O#!b9jk$)0i#*e zftk-W1_#mit*kP1*fC31Z^?w|zn{Mi%$=3h-12NQCmJE3dZCmQNTEk73&&w_pqn`f zottgp$4DGp8ynlkzkdHS&G6;Vt6$<@*(DP!&mrDdC9-)8C`W6Zp(Z1ZXv_pREaHq- z24Cki{d?QzCIB6sk$hU7@L94`JZ(CJA4>rGxrf31U0NOvp9Xb-k>(&v%#A7caO^}H z@k-w{I)}mPP*WB-GS95|AhfmzF%u)R=t~m1IOU++Fib08XQ-CtivtPV*3vO2(Pwu* z3lRx^-Mxo^qlW>LI}=ZVam{b?Fu^GFEd`mn#S<^ZXh^H(bhft*)TVjGw>|&hB=9VK zZZ}zylW0gbZQs}S&`@%L@AFr6KZtaPmJd#c+g;Wyf9b;eveJ53VhITId&gg6_9FPY z=~Y<6uzA&P{hoM$@u%~J_J-|HU48y%rq{2HbJS)n%yej`FsRgF5UvmJ+S{dev7Hhy zBE&SC-%+y!;LSx!mW(t;t7*GmB=BHXM`n&zV&z0-nm9R;ATEbA3`f_z-(gfh4^?QQ ziK;kLG~}_40+UKc8fgA=ZoLUOQAh{C^o+jEs{zoH8}mEStnM|barIMD8y*~S%_1}nDSm%e z#@knwAE({==!(H2Hi7%6VTfJhjz=p2nZ!VOze;L))`NknXj)zMwg^k%PLcG)x{sgY z?0r1->P#L0qE#kq(SFc%2DxW=10}_7G_Hsga~2w&M72{%+nQIUW;%#BvA9KTsr%bM z#SXb0qsxASu&O!*p8Sko%{7^Z$TCGFs}>G| zETh!X# z*%keo$hg)o-4kX#G*CqH*xIb>thi};-Phh{&DC_&z+mRnbaLAC#m>XqS3O>caduoc z*psXKg$8iivcVosf6kc!)kd=&4g-}+qA9O|uc{x8So1v*XC&tm`>Y`DZX*16EG zL%zosHnaC}YOJsPl&!oUWh@E5SoHUhA0xKhO+9q~RlRIaM90ML`(MYSIUo6if^?v*6z;t)sm4y{21e9N?q=H9%_)BQ?Y$EVn1jI; z6+8n|JG-|2rQ3XEgUUV`$jlJ=prTpnF-s+vL2vB)awJLa{-=3fhWP%Cfr*9LseV=* z{s3c`72TDN-A$lraH%fsrd=2?f-v!@n!T5N|1_k`qP6b`_fO|YsL1-M`xzvdaXi3? z{QV1VwJg!wEsuN8Mjfl#)6X^xhWg~>K3j)r6Os4rx}CzUBq(uS^j3Dg@fPU5b4r}m zDRqObMZQU)%KCw$5&6TZfMAZEcv(OE1p^YKWMT zG)(-ib1IIlW{dUGm|4o|o#bZMizAnmO3U|dmy?lk;dCAtYWg#KK z^V5{v-)ylDOvJhq?xvvrv#G}y;PkrM0$@S7jT%e$SwVGzWH z5kT!IBSZ$m>rO&HEjV|IduJqYo`4!l5S;bwmOdy+r5>sE@_3<>r`x|vu;$4yvl>vf zK!t)FKC|X4qS5frL(VehNeR#T?|Cw|r%3ZwK8w>Ps(pUeYANxhM9ejN#Ht(Fvp}L8 z!BFD&#|6Ph4%W3v)zrkK$pPqNNoN7GCP>99h2zgVTez= zO}!`LzD&Bo`}R@xQr)FfE6cN2l!`oDWVVx%xT_0IZ+H1R%TD#*&iCjiWDyojQHe!>dqQYCVWml`0x$hzU_d(Vb$5>slMu++AmN>kL1p)&2lnuZD2fJFQQTUPB`*?)v5i$_VuK?^_k@1`;30%R?00jMBm?anP{vuqTGnrKqh@nq7jE;R-a@61AqE`qaJYl_ zSKb`Kr)obFSHP33CRFiFX7qC0qSAIwIUigB^i~w)GThZnLn3{T;#`5dCpzNrhI3v! z=?Cm3-claho!O$>J=n!8e)7rI4(WW4Byup|d3JO(-Cd{q z-VAAvx^Vi5?m_vJ{0;fx-AsIPv~S&v@tx`*GlpJ6=}(ANgm)}`&kDX6Xn0-esJuL; zyRN?{cSG$ND5v`28G)3G;J6_^<1y%8UW5G%EODUJO^o0tdq2F4>@c**?PBv-nvx}O zvCCBpHnp?ifaAT{ELCaLvN2Vr?re(&39}e7sEiIkg|;a$^hcBQmdva!T*r+CL-dtv zqD*6H*F@R;81&`!^f*jSO-TSxc$=QgMcLjKM$olfNW(YyK3CoQNZOpC80U(ahkt2xAecjjZx_tU1 z6ks9}qLu}hGh>LP1xnDpv*@OU$*ugCfVR=u2ikY*U=PcSE<5p5`65T8d?GeXSTYw^ z<}X1d_VcxU549OkW1c-59if<6I#*tECsPm-bp%^Lzm`}we&%FAQU&!>ADjBX-MD9> zr3_T$N2R5s6BCu~4|G~;EOOeE_QHvqB~BT^$i9QJ*D4_q&cBO`QN-3KQ>MqCtHcS7 zUyZ|vhaS*ha#HD!tT{TgGBi0lF3))F2bw`hsBrE|tm0^gT6xwUM+s7&qL`ie8OwNL4Oj(jT7I=R2L<~)uvocHl97MhctJ88m1 zBqX*gFx+=>+|_2a4X89u{>2LB5?c3~>#P&9Gt0AG@!u!S>*`xa*80ciPju3$y}Zu z#NGtv7r;~wyVtDAUO4vc&b*5KPvE-4ZSHAi1m2adUKDz$?Pz9Pc!Re@7?rdysx4!4 zXJ_hrZj03@5cG|VAX!dpU+KNXf%r=MsqiVwaV3BxG%SwRolqW(V>>Bl8IqV`Ra9P1 zr9d#M_JMn|EHYq0wOWJk68+QYm3;GyD|Bk~rX;gK5{LC+Vrn{^aC2X}()Xn`)Dyr) zV~-MLStM}M=lGmPNN~1a=52mHrccp(KOxj=8w0}9Y{u4#xBCUrHQPd(OpJ74OQ^wS z;_11A=q$Fre*e6en`?@{asB8l7!+kB9ER3ahH^g30bn^ixyFKJTHf$Og0&N|6*lY`cmxZ2JrE?pPtmEB z=DEl~_S#Gb1rVNeU)hbcPNM%~63l+YW2(~A(hMs-=bP;O-kgtr0kC})m$7HaBu2JD zTlWiPLGL7RHluk3dPT2ZIpzeouAPG=1nqHDNP;^|A zL+JrZiLz#`4IK~wpQiJ*1%HU=(@M65f(P){W8v3JF{{NVLP0SZ$GD<6WPDedv@+x% zDgeY=*$?|oMZTRx`{Q-Ly)~PwdBuaR#+8Fw^-FP?g>q83lgslN{x`g?7ILu3ug~lw zHaf?~Yz3o48HZ+wG-&o%$w20k+chPNB(OAK(B@L*xY_))>x@*In=;wF?@Cz*`60t| zcn}~@k9Qv!{+!o^io99vLhNE_1dI)!y_UKe^*g+WI8MX%6h z)g;f7k8fJus#Q!gXGkrUo!ojc)MF@Adkf!~>bOKH@$g{@i*(cv9Tct@x9zox-Zek( zjOcI*!Ek>3sWMCJji)CW$e5@ylFsk5j4nJgk;_^SNiVgm+hTk4Ps*g%(#!jV<9iSo z?$0rYakAAt03s>`$VEuLLJAk77+w@%-|tlFyvm=z8{Z&hKZ~UDw9uZampf^6m~N@< zhn}2?!Eg3@u@L=5f!3SfNEkHO9&}Bhn{8tGol#FuuduLih=NsXRTJF}{VP`jG6k0x zx@sUGKpZp`81+oKFzGO*wYc)SUq%V<=f@FRpOYno30D5#Ckn|}uM5lQRpBHD-IXdd zsQBx#6Zx8sS~5lYOh`qr@{!ssZ)_go%z0ay2+s3poV=O6JsoTeCKm7qq6-9ee{t`3 zW~6vT$3v7tn9sboEs^`Rjl?=r9W5vJ9@{U58;1HrqawTCwYBZLY-cJktpv+DCDS&3 z=d!-CkNqTmooLzQS>)XXxHzG!(Sa2mZvrI_oAx_(O-qw?BT{SIU5f=NNugR@y|pO~L4upj z$7T@d@CPQxAuZ zE2dJc&$oCR!WI|SNM&UPrR%|2Wb-z>qxAkdX$~txCA`I=fZj>3KIJ+`?MerLpCG;pxBJlHT-uIKS7Tp`ta1bW#G^0N} zH2HVs$T=u5;AAfcz%*%pek4blV;B7FeQ{U`rh*wAke!w!;q0X)Q`_l%kRQ#uA{DnGGGBCT^_iZn%Unzl*McPzypTOeMN;5imNN0 zj=^cv>6q_p+^5#`^GACh`5*V5=yKk1Xfs3(O5~&o%e5N~t-+gaG}VCvOgJuRXo#@* zd=ftG*eWcRA`U=44kw%mUngS|${Mqa(%jaIZZhtOj*eaq_g|L3&qa2~#$u37C^brh zL~7u13MZS;=(RnFsJ2PRjE`$H*xhXNl(BvK`XTGql(0dFoG# zdtYA5S$5r%dGM;RFhHGuqldANxHrR1dRH%8tb0E7`|08>OPi}xYFj2Ej>7yGj)AoA znv-3)dn`b@WK!zty|Jh2ai;h7DBkL4S=q3?!tM~TbV4Tae%7pezxa|-!T2BV87>a% zm$S$Q6$@Ugg9+Jdzj$+&HXva z1;s~0iNcukT05Ql~QG)H_J1@$s?ME5q+}+;V$PG;U+!XMC=2J6&Yc!*GT3|0t_gj&g zvTwe($P`?P?-JY9oz@-+W}B5>vU+D)suOzL(=*BX!Xj<=>j&6fo?5E)teJ>iRHCmk zg1aU?(RRnP+PCh^wv0;Q*d~+f?cN`pYdX*v+9m+=E+{wv(ILOJPEE`^^>6n7k@H(W zmM-TTrT_cJeh=dtM@$loV}n{V-?SS)7s~M1l$u@%GEM-J50r!@pDufM5%%Xs`bNU7 z@8C_-ek_nayJhtm`?0cxSJS;V&75q{`kl|-O zD<-s7|l zu8os&BY``sMLSyaJa)Vjx3u%2(`p-IUc(ro#O}nXNzZua_z!* z6ei9<`Rb94{P@$+l*GsVlcOmM9wH(ve_%v(l>J(vog_(YVXwr<(+`E#CpI?=Q)N5F z`!`R0xccqwnOzx6D>G~}t-qHhYJ-ezUklPZ7M?s?YiH}7($V;>dWak>p2v?+Pow|OMPgM^3qKk9$%;|{C z?MA|EEv(VLatZVNGv}DT%#@8&NaCz21Hsw{4<%S$XCIwnVI+AIr z%v@$yfJ{X5wgjQty7nF!6@TW%1H|U-(n0swf~!SGy^UDTF!>w{){19P>iCrI!{6Kl zw~JCS=?Y5I^J-I4>Gg-AGB4NHp3hpD@K)(=lclaKO5|xxtE|mw?_+*?#t@>R?GrC+ zi^*fHeQ_US#x-0NiJjJG4SBy3(k(GHo451Z}^J}Tec~$g(OoNx@55X`|~Yr zFgEsj`^PR;K%MBwi@}0mK2=JxZdyx`C$%Lcs&nkAAx?War>T|7R(&~eVi7#izo|IB{NLKM`ttkF3 zQ)6fhNcDVumSW|) zz&b79nAR~_zDS@NKCTRm!X^k0b}otA!sxc;wS&pgv}K9h4W{(GLoq6Q@j zukc7xb{q?oWrY|4q6Hfhqk%Tii%ZYWb4tT|%f1xqlWDhF4_d5TRb%AF|M|vJJ0KXp zz|B0i)QZCty`TuidVp7R~XcVN8EuM~j!ybPlij4&wVC3Hr|$f{xTgEYlYVn?B4~)gMs#JU*|0 zLH{rEg+VUj_xQ|Ud%4tMO_lgvETm?i?~*&-S<+Gc6n-@Ow9f82fX`#NktkTJK>P#o z)8qe9_I&v7AMx)gUQ9#8_xbx@-+X#R*#4jYjp0-_2f5^be~CeK;s5y-|6a-8-&2>R za{SL5;4A#n`S-s3eb4i8|6ax4_x%4q>i>KO|6jR*k9++{FSeDe&=a_P{)9`cTTHPH zj}8|05AKp%5&L&pVGEA+GH~wM2ewK1QW>?>!i9A(%2dPOz zHrIa_U;JgUeiAxwo&)AQg{HkhyM`S7+&HLbXz0s#ZS6eHFDl+=Y`2(NzeC=fhw$Ie z2Zs=|c5K>5$|{_wRi$mEOBg^LY3hKmPwN_Wa&ImX6&* zCc_lsLbWAi-FvdAuT+SUo{@1l&0zPXTrXso?@s-bA#NDV{axMh*Ts*K#I~r@_U@EB zs9H8@tt{C~VN&GFt50fM7se&E{|M>A&;M?v8?xE_wRO*r37U_#j|K`zRsjsZ{liL% zn%;kR)Ro|heM64-Lj2Cfnw@tvzcgcXK=W0wrJJO$)Dzp#|87X#vSJcC3F=x3+w+pw z4pIf)3)S3}V@;+0s*cv<{t(61)_!gkILsSgefZC@YMHo1%_&`~QJupK{S zP~_Qqj>_e~TeK{sV)u}v+PT_oY{vy(Ic2C*NZqF>3Zm>Lz50>rzt?)U>^vM=Rya#j zo@ms?c!zH?Iafk6|AtZG+Z-9P zCzJFztwSw-;5&)aQjs0!F?P$@zX34byQRcVKZ(5cIm8NuT7&EcpY4`aVBn%8mEoY5 z;n=syYDnWEijM4EI?lf0%xbYn%}#Q zmSnIJPQuN%3T6N|PnlAPiHT8$>jI3c@-gj|D_2PT`Tj_U1MW;hmi96-yUZ<2x6O3l z`5PDGz0Y=r5hX7!UnXV@LG+woFiFMmvvlJVOj-H3SuQZZxFmIOol=L1qfcH-zP1f3(6KSt>SdD!t~$jR z(}trh4fu!+>U_TfciowL@)~D1dI~#0{#;swp?7i43ygChY_^dbPKxB zhq_GcnP#2a3y$QY4=kgz%fyRLs)L=VOFy_Ld-zoAul}Ju#l8Ev(BNVxZ%DjYzdegv z=08uQrTzr|lbGtU5$^gT*N|{hJZq%4#`{kpDSJStBU52os)hntv>U^XsA28XP^-aY z0)o*{e1TDr&Oe__SfpI~F^A?-H9{W_kc)3O44A0Iz)nE}A>K0OZ zy$TMb=q<5dvnc~99T)P11DJ0qQVv_ZQKhZi(wC0Z69u5?$6K0DI4ODQ^!Vmzn8=^=k%Z!H%fB`XQSTIMymjgE-JbX8<0zE}E zmXU5R`&9S(d1BpiK(u%0e(^PXuHhqa?m%Su})23I= z&ZwOiYEbmd3#0e%sau^lw5>Xr+4*A|;Zh=<%@3b1fOw^IOfDEI8YK;T*4V-dCq)g;ZRi+%;jRISJ1Ik zk=qdzu$Fetp?LH(!*JhYDskOVN#Et~co0=X1+@s&dW1pRYh)lNRKLsX+vHhJKs zP6?8g+o|-9l2v~#2h>qS6Tx~dN&nYS<1&g7BY%f96A`bqRKi}|*fH+Bj8FOd{%6$Un$ zvOT+&{7n6_HJPLkTksUaB?q!jkqR7)i_HI{s?x*Z1`a zB_$`55HNE=k${OiCVhWL!U=)RqYsH$cl_nz7cU}EwQdPxCSbT$vbkWqB@c)YF`>R8 z+;=sg!R<^#eRWM8Eu>dDezDNIUWnFU|NW(K)`wntdhvtgRrB|3e&>>I{Hn3+DXb&i zR~VR9x<+}1iKhIt#dw0sZnK#dqh*Wf4UL>q@}!?;+m;sg-|n=z2R)F}Kzm_Sh1omw zjX`k4v=*o+baOFhDd<{j85}2}Cm@6}kkuK|rez|xOl zE*{Kd6i*nX1G(Vv1hXtmOdfasbDq;Vp?lr{7OmB@cDrsQfIh{=a8iV&a?x&OL*hIY zU>_30W2Eddg{FhkLECyM!h(;Mx5kl>FAms0OnoNeI# zb1T*=D_Fq4lqTbMC@X#a#L_@-sz00NT-f2lEq5(rffGFz0pRH!V0;S`UCZPCn-^&)SP4TI zc7RY}A8@*BL5ssVAzjux$VB^LhafTA(R2Y$vb5~Uu5Yg#gj&On9v5N1sk7=BQAHoF zzcoR3-01hiOV=_7zdVQ&F8OMivPY=%RB4a3rEvKU)t#m{HQwc0>FBqe(({S;*{L|2 zu0-fF4dE8HcxZDPAW>|q?afBD^DYW zVH;uNj8dKRj42BAQx1N4U4e7&li$Z?8n#wg)FcD0UQ!Zd5BO1$R$bKfi-S|*n=P<< zP)ft;iUU{BU7Dw0GhR49&kK;Z)1RPW~jHb zw}-187X#&$wUXS=2ft3X|K}UhCOx6Fk9_M}Ztzkak=pG2-puD0l|7527RD<)wpx#` z?xSt$4sbmq_CXk}Ty;Ad-^b?f_hmZ04`Zd~xp(dsXLdjj*_}cf)w#Y5ipT37!_9QZ z*nG8N=!Mt=u|cE|U5Cnk&J8;*M?aU~kHlnU2NBSytE+MwUNY!q5nBYTG5O1h3^$e{ zGb66v(bzR&zy_nYZrU#&%*Pxo8zo?~qm#cC78l=p90)f+lqVK&rvWz4_MDe>MUf=c zXPclS`JH0vjfcg9-ru7*oZaQ^hBt&S3))@i`zg?Ml&Y(QRHH(iuJ zGBUAc#wC^!zWeQ>sGq1Xn zE1VQ$3TfsAm8oI$7Epq?zWfR1Ux}yRyhz~Np_T3vjh-)CMD{sV$Tcq=1*<|UgTw!w zhFOPz_h|3_Z`p^1g@;RPHiW@`?W%qT65SA#tHp9Ze|_l?jqZAHTk?}3zrNf{NwmGs zMSfg+l6<+_w=_<||7-31mIuAB?MY5H+tub{U~FXDG<<9l%-=WSSV4Eb^uZHRzJl!> zag+sGL0nPi2NN2?2*cIx+52U_G ztS>oGtH8mbdb_Z^Jm~Z1L^00d=g%?H?c_X7SytK8L%KQ3xkUnrCW*phY=C2C5w?4Z z*!Ie~^;;V#clmO}Va-V0f4ZPV z`nNXVi){K%%soT;&J)X@Y0R65FSNft88XQUTlJ$(vZ>?s9GdmYmanbbGa2W{PftZH>A|IX zn~j8%E*z?-7+D5jE@I3zk>LjiFvkLZGImUT$;PY-$_1OXG;y zB-(X8%Z0HS{+oMyd!+?zshdlbj*K^*y#odUruZo)ha#C=OuE@6R~k$HDgAL8s1l+?j@o`m*}L4urh#WUm*PvE}_!h;Z>0u!7 ztCEG)h5r!?tSogsGl7U9kb8HtkGZs2=Z#LmyyC=U{LD=<_u=B7*h>1Q;oSVjF1pmzM$W0`dnTyWfu$1tZ`Kc&X%^Z}u|K z&C?}

49fM;~NLo&oiXtcZ-11aAT9&w&|fCwU!?cg&1jp0e?~IY&}NtS%Nu@aYn2 z3ng9;8*O`eZeB0lK$P>e)e*WAuX+53^%-Vu$)1k{f15YCx9#k=;oIK{APHeg3C;!X z1Bz21W>6FX&1GQ_#-}=dPJ< z0#1?Z^Cz6x^G5RLQHcXYYxXdSYQt0ZmylSArbr&oUg5zZ36`z>elFEFh6pbZGR8+@ z(j~SNM?gWBv-e9(AUF4Q!cfT_;yxlQSKqt#PnNxTn*%-P%jjw6*yefGm#h}r0TNLs zq8^{8KoTp=q328?UeFZ2d@$GC{Uxyj4f*_NWd%(Z? zDv~x~4lrOAVWnlHw1C)Dzm*metv7ZCMn?7W8=dkzsa1XY-{d!EwU&*yCgjndenVC= zl+_?|(|p$je&0U5K#fyJ0Y)!;suj$*j?ga)GWLWN&1rep%ipf`!(Fo0g?TShkdrEB zxcGRJc5tp0r@60rEX{v8EGx!!D{f@gAz5Tg(*Jr#V0<1T37#9WEOcj}4}j(kWb2{U zK|+A`1Z6mH`|I5uMJg*u1K(7YP4KmU>YtHrX<)mfak4sO(ruWFK6-E(VHDWoM$i_aI{?Wa&=|qO zS%#I{KA;-`e^G?X1(?aODrDDtn0pY)$$%|GXA)@fmzSU}y9YFSog>K)Cn$g-045$K z+h2i?*TQK#)!&HUMs|@Qry#;2^TopD26@lK!br=mMV5gpll)o4WFz_V2Q+Bs3N4HG zu8&Fh2Wtz401C^_p+_j39~v3qsb0Od8xm5@q`!c*adjof+vU;tUk@juQvY-^!Y4xEmk0U!)R1PNAcjjmfFRbF=F}e3!Y-E0=u(C3Q zs94-%yV!jp0cgWUr9BbAb4`))Djg=Gs^IDZ8#-rq zTGxndSP&D^tTl-l%wr-0thHvnCOJKq=>6c9%Kw-_R5gj%1i;N8Q`#}qlHfp6D0&Bp zP1%*jgy)Q^x52YzAR7wjtVYYmO-vG<0;Ld<41 z(|m^NXbGsOs#hj=ZZ>aiXi+{9P@Z@(z`#KEbjx+gbh{*h%9g?1M^7#zn2Qp-mOzH0 z1ao}+9jNG23?b%QJtZ40{z;bmCU_k^^x;jy0jUUpw!!2AQVHri0iRXQ@e|AU)E8xC zKhwL81TSUsgs@}xy?G7~3MOEq3nw252|)4AYDLp;Q$K+BCRR1n8u0+zH^dYehG%_N z-H((XzHvgrD6`(L$W(r)LQla&f$qc)Wv(CcD+(pFEoTok+fT=Yd%t2Rq^LoQEy)s+ ztUtCN_r*Bj5L7zCs`t?qXq#H_s_McuI7!GUkq6QCW~Y+f@C%xWZ!opkd3K)= zkS#=L9OzSsiijxqJKQl*oV<7aQW2J>uCHdw-_Ts!ZUSWm5H2A;mHC4Rj~9<)*Y*9K(%`@cIpP9@0@rqjjLK^tw;_~}Vj!z)qMx@qN9rsYfK@9)pc+0&Q8V3fT_5toY{x6K| z5T0~*$p)lSaysnHf8HD7j3+zkxXnE()9sMmcy<4;yRY_jGIo}lZ+@>98X!AM^@b^_1KZcX9aHnKI8$!W(`6%Miw4arV>f=G&vE|fxNhU!k= zJY!D0c&GqHWjfx5%c}(VR(~A^PwDPfIrpucJ~HCR%Y30)Zt^W&&zWV%lMZTgrB76D zI=!!a5Ndlc(I=+^Mu5nuj3~VY-XZCS^sMolKL-87QMoObX2GJ?Cw^Y7ivNxlu^LoUO$;fw+l$jr3Ao}B_Ep=q$ z>%|WBGq61+5^3ELT!XS33)b}`A~v7qIq31O7_c+ar*D@ZQE+LpH3@E1`bkCh>?&k@ zA>T-+q%+gZNslK9U2%|YLcpXLaqwT;3z@{;-qOONqIPxoFnb9H*_mN4zWgc*6zo_@ zgyDB5vX^-{_;Nq*2Pf@y_vr12J+%v0{^6rPM;34>l56{iy|>9!7~M1<=0O!vuaKv9 zmi*dFOAik1f(+0wAgDe1y;T;g2l$&OxlxzwJg2JQ;OB4%{$!~{mJ#is|Ca3LTr$iM znDW2t2T7e*V32>(s-XC%sA7%~PDa>VxK&46eg_}2)#b`b-Oo~Iq4{{&%4u!!I3^#X z&04^F6Fns1C($61pS4MV5tJ81gP|pSB)MTc!#`HI`c*X2dSZ7oVOmcmHR4BhS=ix& zo70T+w+|I{3mU52CMe33L}VS3VEgvU^*S}G>U-JPe9&D6gj_`OtfJy{j1bWS6Vt-R zi^jfzoc`-1<@v==U?qL|Rnp;uw~Z}6&6nnSq`#Q4(|z$cDn>YIHhF6;ud7<`vxU&$ zL0;Ahna{#IV;;EW-Q?VyU>4yYyDslM8qNCRlYsVmivzXyrC{?qEt*Rz3h|gd0k7{O z1zH!8aYP^r{X%{2s`%SGhIm8(5}oW6hkTUJV$boZfvR9!8vKn)EcWwwo$b;)tP*4# z-mq}j=Sr#5+|Si+HpxZ^^NdPN89n283y|8 z+-b%$;%DR^a4W4FNBf+5Ur)Wr*82SB=g+%ek5a)UhyV%x@LlgsGDP9Zi2kIL&|zIz ztpz$%udo7Lf6PU;q5d;&)6nW$?(O?Tc?d%!v7F!ZwPznky{yoE+W)LNxg+`v?-TnZ z?S7%Eg zJWhu`0qFXE{o!X6U(Do}4xWFnLGCB9o0&STQDM54-Yv2|^LP3w&Sb6!!z+yv`WopG z5d(TsX-#j{XfdLK3NfwRnk`$_$2Noa(A0|0KUT}F_fxi3+OWv@&$EMn_5?jUpfDLj zsYO_Qg|m}F98Q2$Aj*O3u7pz%#EVF{piRi}@nmW>Em%2{@turX-6zIQal-yy;nbN6 zOn<$!S1%;~Yc+*HS)OmaG|a&0dycQ8IA8t_*KNt6vYj%@J8S$&({z6HF&i`EhqZ+d7LFmk7kCKkzEkPV0{vQF-jy)56jU*;%Mwj7bE0}V z;5~jnZtNH9r%_5ykKlVWe}0}|?wh&pAo5B9?}xt}evZBwno%WGrnDcd8`y1saV11W ztoPjGl%Xb9PUe5DuMWS6J6KC%!~cfS_M%f={iBR1u2+n*w2mQlv}gWf()nYb&lM87 zA@MhXDTk@kw^}V9m~%r$i$3C=g~ReQld{91e+^+H2EyZnYljoo_Z?KAHt5(UvxDY_ z(7m3+2mAtfDb0>v|Bs31KyuviS`scFNeZr#Tr$@aSKRasn4IfkQr^+R%M*WPF8v&( zb9_e?6{j|m%rslk;#D_I;w0hv9y7m1OFSdWLPLZ>|o=mbn+>(BVCt%z&{>qMY z>e@ub_~3lQ_j{G12$WJ;wWDrK|Gw$!gFXCkh3B}-O(GV0uqs0E<1k6i!imZu37e^! zpNCcJ90vOQGroMf`}5|Ab+5|1uYZk*c`^@id8WU7rS)Jy{at-R{p7*)Eo%?4mr_9{ z;oC*hhC1&3yt<3*#Jbr-Q%0Swj=JMadl-p!>bQu!7an`riyx<0UsZLvbW5fs?nZ4v z>u{T;y^5*c_NpDT^RmT_7X0Ss`ClluvHp8OE*g8JYn{S8YSTSgFyu zx%=!t&yzD!3(sokir#WdRQY(dc7 zfX+deD~|5?wqIS2-xM!Gi2%eYyb#CXp-`8{H(PT%z(;2{ZWN`2jH7J~dL{HBOgzh?EauiL#YDW@3t&v1 zqCRs!hs|N}#MHOPf%w*tn?^W9+0k2CYRoo-yqD-s37VRT2z2Q{u>+|Ja|Rf0?s68h zQYElAhuRTEIXvbpn0ubaUV7#>eBG|M&gB~X{D>w7ko(Cx_cJQ)?vGz5V&QWb1()Q6 z1Pb)101C3~(Pr9ubfENFXl_8%e6m?bHOG#N>A_gXN3yM}Vt;yaVD>vxTZ3r{1b-F^};JGCT z^8wJq;D&&SKdex4I^!)pr{=G8DLvwDU(pweT3A?^SZO*^JFC=nz$5nh%dZ}*F3g}F z;{bwl0NN9>!ITg9Lx=a5-jGvO2Y;Zd^+|1RKUQH6^Y zI1fw4%5$?pLW(F3QEG2D+@2P)c)rVx}O_n6~|@hQ8S~%xI9%c4dV-v z`xK~Z13rOr80VGc{lq+hVRzz<@Ms}93>v&%7l(| z-N%nM?@y_>+rqx-flQ0H0&79$LM79ikH@FtPPMIK)t2E}iNM#iXEa(fu4DEyNO#0c0;oE? zR{Jm<*H`iBlhUFqb{9s)n~K^__7a&G_$;t^KkYgS+B-1h_C4urfc&ch|JQ&xFxMk? zC2R7|lj&W>?T#ll68&w)l&9wQoO$=ENhV)!m6a+yz+t2<+EAI&U}p9^rrjmgIyEmG z_k3ryc%?$#&ciJ>RJHdflYxyOjBj_z9V#|9Hv5eU37XKbG2kU=gY{gU-U-XwGBUI~ zU~*7$BXQV%%B7-!<^Jw2jJc$_mTCH3Z$zLgw`xUOc)oYGl)){;@P2+8Rn^nV_tlQZ zk}=n$WB1b2EqpfY>h3sV-#qLbDs9gH8ayZnS zPrYCGB$~mm@G;779#?v8H(?LQ=;XwKp-Nm)%9x&XU6d7x=@J?BR;1~zqx3&)TQ_tr zNQ6F>54yG47L*=X3_uNW(R@L2y})k&UiP>%@L~tg8~iu|7x;P>3Fzh0(%Ct<-F~{zde#WsN|+NL!m`=KJ^bxqr3^&U;$94P_P=ON*Dn z3nCmsH3UVg_~tEbZEb6S`{pQbWW9U`S0HmVF=3i8LzFT$}y}Oe;L(m))2q4T}JFGmlVDzFgh`4 zl+`RgPi;RL$A5%Qjq!lAN%h?F53Ml8>$58*w@Vv?XO`drS0aaJK7HCI66GMFx?ShO z?~pe+DiN6CDW2qu}7l})xEV}XC@ zuki7Qm4LM(3=_OQ=(&(`ijm3#@?bJ-&H--+l(PT#?~m5|CARUt0Pc%Xy%BXpiK4!q z@F6lE=|BX-v=&2Q8Llt4Z}=i^!ys=& zbN>`4ji1uzl$QEgm#tAErdpWX2#txUeX6npJT#!Sc($G*V!F-CvE_oT-{BFbr;j)} z#rChS^+7~S_{r8yBnyiaP?M_xwE5D8$}?|`Z%H&;W;S5POT>I&m}^}xL`G*8+dbDj zf$E|PsC?N$3?l9ut4$mJ8fP?h_hZGhEbNSIdMu!NoBlSnvQIM%lDan{W%0v zJ%7u}k0XvEy=V7{fAdE3NoDlMD*v!4*^S|gn8u88;}A7MawSzib~P{ya=735#&o zsb~+S1nJ1RQb1S$B>|co!*Eq{c5yFmvdpJjY(BncPh-@Z_d3BELd-v_4dWbKfW)`8 z^~S@o)yJMOVFu1Ivd7K(fpyeOSlP(X?hN_R_`IoaU-*}uVJQRTotX6uVVkv;vcaUd z^`MQ}xOMN>uRj%_%R>r-MQS})Yx@AEzrV64B_$=GHbS^2-bvAwL>3911Rnvj@y{-oPKRqvDkUd%O~yrTYmI{e>BblsS`@NEFq1Q64V=4-jX$uqo$8p zsW-hkXQZKF2lMcw!iOr~b7P@kFZtg0EKi<1A?jlYH!#09X1h&*%OuVEisy#bhV~2? zyWprlOB}%N@WkvT`D1sQix*}K>`Y8}KXcJM!k{zt{s>jH$m zGU>UPe0t`?_3&pKt4o+^S*4Yjkk@rs+GCZaDYnFGOcL7+!oQfShVSt?pfw98N=QpX zNegYi123qp%#%{c2tMd@%XWctvr-B^TydSkf zIS&5^6OT70FZu)^)M-eRpvBM%^PFIDxDtz(LwbmfxQi-5*tW2aUN zlZf_xxbDi65BV~>ea8y1n-LPD!mC5~-oCnl>DvqXF6Dmfs%L#^V&}8fwK58IszAXA z)7E*5um^+$xrbcCGF`Up;QCKHgAut#{pyydjM+T}e~3wK^Od&jlH-Z+i+^Lop6UK; zF+UVX3F2(vYoB_26CC4qN7T@(oT4tqO5@YlPiQ-wyR5P6&>=DH$7_m%7LJaQ*S*so zz5M`zaaF#bgvuK0 zp6g-X4rPR4_Q64G>m&%O7#Yr4QqEquJ&4Acr^>lH7gkqiWHIWm-ab9!7FF&om|?J2 z_C1l}+-=WJ<+qQ^2Zx~=Wn<8-h^WKklfjN$%!G&qn|OF}=*b zkabwRCa9Sn%pH_jq+Q+z_jweBfuT*Pba8|c^{Xlr9Re`}NkfAO;#Vi3_GFqT^}Ubz zu#}I6kKsvnPR>ENw*d*k+&pU|Fze2r-{ooWMmunEZ9#Sl^a!xlalVNzo*5TP2`j#) znN+X8Wt|C#N3+h76g1ldKSke^6RzQ^qGzv_u ze_AaNq-lYb0H}ayDwF3R^XF^ww}=~ z=FVwU>FyC@ZV)TOEpvKGmzUgGFuZaM!>}Dr_?&u4($Fwu@r#@2nr|AOEtpwaUt3v( zS+BazU^e<=fbV;{H9^FkZE+P6RAg~@nECE^x5tJ!vg(Wy_w6}4hp8u4yUNzC<~Pg` zFBb(m0!zT9&M(I7a3b~PmzuhBxHVl!|UrZ*N*J= z-K14-RrunyYsOpFZ}HBNz@H$(1Kn6m1TZ0wagP&c=-)}JYGJ`8m4~Gfi2}MXIO(~u zdteS_um&rK;0tqcqy^uL zDz}`>JCu8H%$29RQG}hQ$-UQ%s(}vVzq`ahO^iP#I(0fb`B7_x2auqg>?!g$@F?(y zo+OM#ZRWoE%mUJx2b-VQ2f9qAUd_t@&DXBL*{YYVyXtBx566kl3M>nXL_|p!%3FqJ z$=-E0SSgQ9^sMZH6-L^J2-NqKhakhx#G*{C{h8)G+k|2cXqp*dl!wuqmJ!q{tKM4z zY~uU9?0i2s}Cv_i(>9UgP`vIy&UOb}MNJV~SG(G>=gn+97Kq!9MW&_ZIj? z?5W2$F{tReqvI}O)~yzi`8Z2Y$XW*Kfb@Kit{PycW(pLveN07vKt%AX}O{>Hu3+(zaL+u{cWL6V1!AV!8F+(!hl z62u&q{^!78efj$OdepSWy|KbejG3PL6gQ=1yH4LYw1biy<6*$W#Xv*NE+@Ss#u%vz z*A8|9SmFY~TSqMWdESt7Y4#UKY2+PIOt4*CM)wBV2yTebB??n@uvHE4b@TRE-G;1q zr81puRaRvxf1(*u@E7e2zT@w&tc84C8X07A;FmmZc5l4i=hXGbH~kf;>xV?P`No%N z$wWN7aBxq6h7kxMFe^M&+ zeO^uQ2@=}-0LY-~u8C0DkM8%ZBE zr8_WjiAJ-O&%qzGz#_tY@Ky=C0?VhqcFl`i%U{s61O!VhS>4(CnQ|haaG-{W76E*t z4+B{~J`B5yoijM~xyk04On`8J8G&lzK480``F9Ol7jLZ1PfAkqufq(M}U^SUIC({0~Tpc}gR zjJvofCi5@|{u_o6v!d0-bg*!)@b_tt@M&#_P8&{PxGl_D@;^8&=jtXCSM&F; z-J*@1ot<~HsYIUIu0Iv`YcaOy0Dfd&_}RVmfhScNQCC5L20iSJ+aE4kGp;Q9oVplG zwITO$i&hoFrqD2jaQ?1b!!CNsJ>et36%p21b^+!`+&nNUmofBO`=@#9g#((t*E|wW zl3^f~2b&;W6o^H?=a%stgq6ZfFB=K!g)XW?l398l2wILEYg-dt3FcM2=9Yt2B+^-; zN~@#ujE%Ws@zaovcFRwXs3fffjTLLV%ak+*&o@;p37A`$f`scl)gM3OvZv$S z*`9_QU!Q~yg=yIIQGc+)ysd!&I^@JuxtMF^CJ*w-w}{% zn9Etsa?jT*x`7EW58UyG!Gp>zg`zCyW{=Q!mC9duv-h&l_cVbZS947G>njvdYiK~I^l4%sFnBQkG*fm@R9xhy_t@jz zBD%1b#ORO+*u>8_4V_%gle7<1Oo&0f^+PCYt~t4iU~H+G0JWab+9rSpmdH2&De0Th4v^$ILa8ZvSPsBOx_QCgK z#W$~<<$h>nbgDVN`^0S-t(5ab_DfTn@h-T@q*+y=G=qOFWmrc)zi`e(M7;M&znpNS z61r8cVS9uJ{G?(#14CnUIBqYgvXhN*OYXhrPL-~6^KV~_X#(zs-fIzT~c^FhLABN@B6&zSxT&#STY%e4h=z&u?O$chDTZf;>Q?}P?mFM09CdS?rC+lw%P^XgKzCAdc(tBph17nfr^yvkSyeRvujTLWk zq8PT%Sxy|D`Ky~!w{+)`fBnR5Qf2DC9|Kc8ofYOdtBG|ewVJm2&n@8X!j1~Uqz3|2>Co3=cx zq!Oo7kJwkwoO2*HMkuy%$+8Oossi3KfyVuAPOuTX`q;Iu*X=U=oYU-PC z*?&~ia1^Uh)mX;;=%4g)<&=9M_fRnH{T>Pf{S!N1$sW-*4ilqae@JxOa0w{y0uCs5 zK!>iwDEmlUQ`60$FAWUJxfnsqA8D7LdPpL#cJK&+Cqk?tFW?VX+$3`1m?if9x#5M8 z_WSa$Y&5j*a}IxQ}jlc{^NZ1c64^H;5 zq*p`S8P$*Py-{ENH0CA}byCJ)s)#m5e^{^mv>@~ICIyG0lB2^jTSLRbnk^}Zvl!ZZ zj!VhZxHs=ODsP-pbM-Ob+eALQ@AFG*E?EJA@q7TT=d}uJ77m(EIv^{wb#r61I=~j< z_u%GcR8fGD>h2V6&vw@SEd1N)HDA*B^SdopSLJvg0**bzeb5`}XSw6~VUGLWwgNi4 z>Y14)shNtaPwX7Py`$H70L5~m?44e=?x&U<0Kf_{N7>E{wuu4HXjc*HfG@T3qUt-N zCMzDFzrqxy!nM6^yM-ee9~FMOI25Tb+g1RYEwUoSh!0N3ArQW>MtB2J0T%KfEEJv z+qx`8xXv=$vQxpUqrD(*H4LKF+Pvzh-h;v^W35ku9_-nWN*)a zS_x`)sQimqc1WX1cEkZ-c)V)!2sjCNE*o~K&yTO@yuDYui_y;wgbYl6H7Yuq8RIoL zbNTkOUADIKy(3~J_tZxZkZ8jL?%fcv9dKL+x+i3SxGF79f4C{O2|ZsAZXW;a^jtRX z=)h9`8Lp%7^4=Y;~`R6k~>v zV#3I6p{u75i6R$94PD6K7iiIN(JCs>hDS}B8@O{BObE~tQWsq) z$8=5R$@W7`5nws5B~t(J05VhMOQsRxKRB*Y?WSxgT<( zHFy}30H@>_wSZrh#J*AVbknWa*z+0;mP}3wUhE+Pv&)jwBtP}afz`*Xkuyp(DQ3{+8h(f=)tiN*$CMd_K)C%<;Lu=d@$2Hv#_ni0s z>8}ZX0&O+GP13Vn&T0K^sTaW8$xmZ*dImv-@`0DX18zK{ymo}{bH+P*(F+(U>`{1= zGE!;tkln#QQ!vF<0uTCE!fN7~Ar5~rY;j}h2lX2$)vNPwZDJS>{{Hvgl%#>+lLt-M zE*UeA5SXrC_H&#c+vjS z7!MOeMH6^FnnBiiT>-T<^0R9$?hlAUBA`z~Hkm+E`ub|iR_i@$!el)-nGVPtKQ4#0 zn;C8*xG{=@*DI514>bJC1~KW-p}L%K_7$#?aw|C$_W zTJkyhs_?cXfgj=LQNw^*w*EO|Q0a`wV(kjN!34tbhZC$2zMmnUWu{|f8w*kFcDA#a z^kW~kv4dXP8UJ^nE+UB_Qz2_DpZQtGuo|}U(pTYOwa2Qew&m@cul>MOCSboO^`$K? z3>13=ISpJuq^PIw2?g4rKKFMT{m>7T0=M3T=TGOAyg(RVuNS`=BeoxE2%gV=9A~y~ z6CFNSH@w+F$FgT@{3-}lL}d+Vz+3)#tx42+`wcmB$M-&A=sK@1HX*z71GtGqJqHjk zdNTkNqh5@PNI)$hY+tZGm`;S&4x;2d92EOC>CfNJ^Q6i#HxM&YuU_>y`G+OZ3sBmeziUtYbvzI^02DLX3Qr5 z21Z2{KMK5v%wu_^4~Qfxb|^R#U2P){JA-R7vehwr=NI?G%JEW=S1c?nO!I1vV;aGB zWgaf)$7cfykHIUT(k~&Cc3PE@;CLK5R1fmlh9EEKb+E)b|a*rpghfz5>aLh0rDpN4L` zg5$4)Dxm<38Twx2m@!zOE7*Oi$D9BSs($<|jGa#BEf(L*((in}B1kJ!yBerse<4R` zC=J+dgBg0^x4MAY;CQiy09qzaSe&N^bKQ+mB`fp~omOt-M|65DR@O5VMJ;LPsV|=8 z=kG->?NX4FPV-wSbvQAja%ehR8=NMhii-+0%KHT34kXr4G6wvDGpM)F9A)v2HwM!Y zMRJ^-@87?d|NSdsSFl>(^wv{RxK!zN%d{hSn=vsngNGz2kCd9PFDf;L2we%?7sXie z)xV11*}?U!MgFGX3V*}d{}Dadryg=sQ~G37L1F_Tz9PSvtkwSTEs*sG-vJ!cV=J2k zm8I1Fn+pKNqq0>yTB6bg(;5Hfw^NPBI`}MTQwDGArP;LbYlDYh*E2msLH&|;Tih8s zxEy18gT;@m{ykA;H?!UFON^7^D2)1*K6Bo_eaWAelPjwDx1`WlCzJFUxx|MOacoH4 zC5|7j5Gw1gB7!7&E;0pG)RxEAm)`lVJlUn726#L09pZMt8~~XKGR7m9gyl+x1zW zooE{ayT4W|)7is~PH$JH*MZ!_C~(7J;jAk2Tn94*5E?|A?)hd5F;GZAzYTLRkl&P3&?tV?+O$Uhr{PA#No&z`<$9klkhjw`mua=Ga|~ zcbn&^fhSi|?FzTz^KD);tXg` z%$<-l6U6VK&1Yv_8;55Gyl6vnE`0>Tbks7Y!#t-d{&@2n2@lm`;mM0XXKyRz#n&)| z1U;@M+KY5hM->ow#^XXY5641c{{zH3%)?r7c-jYc;sM*RPc*^9D<78WxhR-!l@ zQTJuUOT9JIvj)$%{P;3w=$5K0QR?j<^}^a&Bx>7Ly*6`Lpw=l?L`&dh-nGhOEA_Ou zAFN!9tnj&cDXG6PrVH&QFmnJ*-wS-ufluU*{P1rgfjBJqOS8Z!lQ(?ZpnYfAHP0KX z3Uoii(0r!=KjUA-)gG$V+_l5r+jP7wp826Qd38u=!(k-<0rx>&)op3bLw3iDOR2n% zL^KUojujKrb+4uuH;yf@I(UH@AaV1s|n?e<653s8;4N>60RWBM=b94B( z=yrh51$rH*zrZ6)^ks`n!8%jd$iCUv-3{>xO1lDfa(2eH>Oi#D>b(8Di|V;blKtW0 z{d8M>y;&xayb(HM=uJ~N?zzS^yei_cI!$G1rSH~A6}%1f5hGG55SW&18!@ox(H@E+ zY2do89yW}xe+UM|u>HD^Dh(h#;KnuAI6#@Hj87z?E75jgLhq*?tW|XD+N`IHZnHnb zjZQ%!En*JI)+nG}-k`wX4)0gvW!zjb78_3HS5p?{V{sZ7<`Xo^Zs2^Ib z`#z?X-h0FCKt$ctJ|08??M-3n{r2ARFX5Si`D$qVcI8oyS&+6)tXDeZ=K1mxMr4)R z)Exd^#eTm+Kbgy0WbG3wX=|0+iMt+#mCJ|JkP39iBjvoel=-zgl7R=fHP zgk?J9ZmPP(4&SEB{9+ogHU&3&{(Pi8t!V5p8dR@=jVQS*hV_SSrqDusYkbF;TY9@f z*+$`5@kG*GtjCGH5^*(8@ANET>#bTIu$2K1v)S}_SeFOO-ppH4@0cH+Qig%`9czy|{-zU3+;C1@+p=Xt*dJLo}OfP)?U%}wdzy5p0D zR?f1F3&vZYB`(FK_#HMZ>QQmlr=kAeK; zx6Z(yRB?+c}p|?aaLtn;K>BB-4gy z-DQyC@y(cmFyj|vSIWL;h=?yRUSFb^bM4`*A8Mx@xx3_&{`B&E<#4&FdUn_aj5x8^ z-xKwD>3&M|#0Lrqnd}!g!_0JkFVv8S=7+x_SeZ?8N4D^^!RcTtB{cIr&!8OHc%m>B zm{#>?k(GKG9mfGRKf~6Eu z5odF(IDKrjD7NYG&8qkEE6PkH)CE$liM~G=~kbovz;QGp!;|<$Z?u_TAKe zMmu=>vj>$VV_X}gWWP-ZxQeHZoqQab(b60(ZAsU2L(XWT+4O$J3)&XZmv6O>a&9lo z(SE$^nAgs6YYp(V!pwVDjv(JWF)b}*Sz*GWsI4k z0#2^)?pL#aF*uS2J$$K3C@taz}dd_t}^F# z_nrUKVRvd%`Tx}_C)(EkpDsbJ`2X!4bpL;PQ^nsMInj}gujUKz?46NtKt7wVk?CD<%{5RPQI0@929!QZ znP)W;x)o-uKc*LTy{@CXf@n#Y#0YXih!Gd2o3)H!N>F9)_>^Rwp)lRy_m~LFw+*sQ z++5GJ^;^XbZ$ViJ!zYH*(&gj0a8JEo6jtg?wAe2vGa|MtT^>E;w$O7s-*Joy+#U$H z{3jdU11NfJ&Ha0BL!Bhu;YY!n*fAQb)qEGkQo#h02O%^^M}a5eZrT_~kYGSExVAe& z^7L1S}@T{ysY=AKY)r%Yb3YDA%YYp^`4>I6n9PyR7u@ZuJM^9c22m8$k^t$`;)leZ4U!avT#~*f-3WJGHa-?L525 z(ueu=^`s)9LUXHMLUGB@f=879I9M{+aG$h1MZal$MTGh2@cr_9DY48J_SH4@yu zk}9t`O4ehB-FwlxcrZ0R-NMA=3^?LCdU_fX?2j9aBYLc!V30SU34y$>TN6^l1vG18Nhf>=A_3)mRe2)x;j^{wk$6fRt{t^F*6T26&-M2X8GPUFrP!^ zb2lwLT_aV~(ar5$L!pmuV23ysVT)|Wz)f0yJcxMDqxk`^71LbJ&T%}A;AS7W6Q1k38-Im1;*r?;RvEcS$Fj+89N0bgzHf4DbX19% znR$7^bK`caxtJL1jx3ohrkc~I%E{a+|Gbd$u@!;*thxkyTW9C9(xqQ)H?ywX6xsc{ z#q8Wy8;Ng*!otjhR(W0BVH0)*KW!wwZ*1xBJvthP{c`nPUT*H}kDBeoZ)9D;`#Ab# z+(GhJWkIv)(>*MTB}a2}pond+>EAcmURmi439QJo+>g$3|D0L+Iqm$@si?takK$Fa zeNYqKpE zM;BIpX_j}aB$if=;uY=A8@6QOrC_;^~KPx|Aqm5+jR|#MeNr|Z!J8eiC7W1c#=Tku6?@H6s)SUg(aTKfXj$w?Q z-QA)WFD7fI6c!e$$;7pzKu0Vi-rLL)_lV+0GSWhaB~^5T@nvBa(YRBku5(IgR*m`N zRHT>?&L0_s$9&W@Jh#4fXMB7-SywPcojtAzCy^%h@Bb|JD;w)#Cc!?6eF&~Ue#2ap z)!5&6)@3v*(?hK7`O8aZGqpc=%Z$$~WoKl(@b%rSk;f%kYKpeXoI<>EyQ8qChiO9HJpQt5yO|1PjlXSg3t zJ6lqs3iGXd<`xAL>_<{k(x)3DogE#`zkVg6%@sqCpTjFMGW!F`slode``n$6BOqu6xt2uc1on2im1{=#- z?i*_hzx1a^93TUvkU>_ih8KB-cFm&b zgOp2rPmMl|r#fdD)DC7+`rIw-NfQ(jf^`w_uY!HODbt$WHNMTiN{O2urn%Kn81T$d zpHSm0vo@>!(qvvMm0QH`F9T2$WugA;H7L72C_6jRQxtZpvyWb~JEviJX=WI3H-0@x zo{Q7bd8b|fKCb?9t>LutiY=nLf=|$7!4)2W7Xj_3f=M?Ei}N031||9ziT%M8EGZ)c zAu{m=|0hZZW*qP~K2uSV>YwT{O2w!gk5Pf-?ig(8C*v$kPJUc9031#&Q~MhP?PsfK zWlcRj`~G~$cRxJnnzbR##@Dp2^IEOBx3@Q>tpI>qO2hG{o1QKC`1lX1a=GnbaJ$@d4Ur^>|hE~?psoR`h;ZUWSk3U`ROy| zcc~^X*L1V|`MIzH1=ohVx4}+#o&OVsKK1PP@8jXaoQhI0b94_U=h)QLrLxt(!DzE5 z{-k-%TWmkJGj=^Hb!7cAMQiF!re+|aD7{t-svTqvt9`4^|7m!}b!|BZ7_)`|Q>&?{ zO#KP)0FP#%vPIre2Ba2MNaZcXCtHH$S$IE zYow%8-0s95`E`Ci7qn%BVL7-xn1pj`*ll?)q5f^*>1lxdOqjT=4)wA=@$}n8yRei+ zMf10W1O!a6necG9x4+KP{7>p7j~~a|kL@jXNw6z;r=PyiJh^sw0byb@j!4s-Z_Lj7CvD8-e2os!J?!ki@il36e(CTeTGG^0HCsm<9GsosxXB11 z1cG}%EGTFWmxj-PS#tP9M)G3YA~Dt9KuH6e0x{rUm&@@4gyVxVh4;YVNdy_hv67W- zUtcf9*yb1Tp)s+sghh@~8BQ>|aF3PrZq#Y*eTOBEt|m(fpEb^ngdog_1!x@7V2J!Y2TzrBpdNcL$?dW zy>(a~JI+qiG49mR)Px=u4GeGn8n-^nTjI8)7ASw}(4j-vN58fngsUXhjaGK`1t=!x zQZ>(`b@hYoJvVKVGv9ri@;8wchL@lt2&-aO)bqA|Oj1g!1%(yBGol<}))e${hqRxj zrbN`q!;p0L^=a`$5YK>jdsbHke;Vu(5|KeJSfk+s;h-^_Dh^Q=BkJgDBQN}>%y$XYuX-abZr z2Ev;mI7t?2_4IZ}7nfwUEDNyjqd5kxK!&!zLz@rA^oRX5%8zKk8YWKrBU(0-h3soLfNQ9N(#5p1^ z!5M|ivN{u0QhN6RdHHE03U(|M{3^Bsq>u6XZ&R`xblwm-(l_?^uNsiH=i#DkHsEc~ zxt`cWLn56lzw2K=;=muHGB!O}3(Ja2i6;V1$NX3{VUBZjTAQ20J91EabcD-wEwPFX zy_P@5{rHMN8ku$s;VZkJBY6Ee=Xx`*ON@mY4z3l~h=Y|wwtM5ir`vi+pFUdUrL>H^ z>9MlF_v23WgVRqJIz}8kX70cS_`?#=R_d*k$EYM>uF72c#&UXRZ*SX&4}Ql5CV%`m zg<5iFPY<@@(Tj>^IXVac@nD>rSt(dZ93q3iEz{c%VU5CSuT!!k;P0{0fwbrvih7D=@uNvC=Xm#!NDt&;9zSWn5kmMDqhfLMrUH(PalL&) z^Oup4WMYYN{174Rp!8uoEl<{OaXqiAVK5urahAuT;Vuw69sfMDKz#>>e5n-9MEY4* z{u%!&xqLDbNtuG(*#Wqof9zp6Zz4FXbeU(RloTi7 ztABkzcIFKVMm$4%dpnLKOxdq=95LTh`!G3lrtVd<_pNM$zFp2cok-3faSt6wjHtD9 zyTw?^t?*h!=fftC^V zH4g*$v^iHjL=L!h9MxxWaave8X^tn{IbGvyIrH`u#fo}jrEtm!K9Lr|MB>dMbg}nS zOK857)v?-B$wVUAY|z22MCn=sYh~!upG{Yp?RG`;;EyK?;ViE<4jT(!D2fY}((CS_y({M2VwwuAmkE`Wz2`2G5R0 zjP=r{j*??+99@>jh?^RmW+OY3-hLT=>2zqH1;-W=DSrdDdT)atyQ0(_62F=nUv?UQ zgez%jY3h88*@(T7;}Ea5L?5(qSaZS?;T4WJ=per=%+J4sXG>^aG;I>^x=hmUur!q7 z2y3-GMi`9NRt@|#wwoD_7f6AcaNRF237_s0si9fX>ZO~WmwqG~xh8kySa zSSCK_L>h9^lp}E-#EN37wX@sD9AUHcbanaSnhvps;ML+Xho{3`G@Gi!3lotIqA+kE z=jO++mbkBI;(cO0#OK}EZgpl&ZY62jt(g8X&Ps+MMLtO+Zi0gRQOf4<;^@tN-!*<) ze=vMZSDHkkF*qkLr@nEOe6n+X*hYdexQ6ifFvf9BNvxu2&!>m@t!p#A`JX6n28b1h_L}J#SQ=tRc0)uaYby)H(qhceTL;NoR+poqqc8JBG^0n<0g)mt zr;Mq!^+iw-Vbx&X#Cz@M$te(+b!{K`PmYE#6Pg8x-wz@Eg{j4Y1E9Hc=MI8dz)^O6pxumbA%yAMEFN|J_kvdm?W5PxKlTobfkGiI68R-vTrg=>N|?}2)m^jHQd&l zyu47!x{G!|>jNVb(ln2L`y_}N55Dog4(>{RBsCUK{*Rd0*;wAfxG5`#{v zWo!GsB6dgghvj>tpMEH=$->@#M)7=Z{ScyNQQj46YwNN8{*y~?`q;;KcOrQyn5Wz~ z6Glbau+H=6q4htV({&4>N{Q!&K5U|pelZc9BG<8^C|Frp!5fE*i7Wnn za|iZFq{7Hzhmf)-t0R4r!teJ|i-RefbcHNG&)DLt-ke#k#o+mG85c`r=jdtokWo#Q zAu)0-i7i-=W}zNMq5y0vUBBcZtn%pSTjX<)P5C;KO}si})!5}>wF%hJnkla<3=P*e zdogH|v@8CUH#VEzh?UMMDuTmKILmE!ePPtQ4}@hO;N_;<4xpDoK~|T4drT z6Uge~EP{h<4ffp{mqZG0^>PYOcOck$~upg64f`h52`BGLhy@7;$u zs3~{R_yZVn@bE~(uoM6buzr%qN!lOAYphdR)m~mg;aP+V$6DwRK*#X2zq_o<#PX*0 zaB#fU6^yPr6C${M|LlWxYuib?0>&*A#1*2r3+V>HCfE_|lmqlz&xwqUjJ2l|#%k9# zU$(24wcnBFhuxoQ+rk9L-VIC;uvy)W*(YVI3h)iaUsjG=MA??q-G~Q7XnzTr`Z0^? zKc^-7Um~8>LR8gj`BHpSD6pzs+cv{ipKxDRhkwPIwS!biWIC|q_-I&;%(IqHX|0?ZE1;pi!{Bnvr|M$9>@fiIH)H6zaWUQq&N??0^Ri+CR<3| zyow+9trO)eCvr<@Gte(_DWDd^KkGYY#U==_C3lrY6|)8i@ihk z&^P%62?XverSAu5fTj!UMIi=+$chH*XbX= zAS&e`b#;(Tjf~udGy{HlrkZK6FiVJ(;f;73fvcXrK3*qa!I5a|QdPtd0!&E7FH3W1 z!3^R-u_7hbgRqhA1_cstki0*p{1ooB#(LFARN6v*N*HzwGI zw9q?#s|leT;y9qQ%b4qM5q`$*E*?i3vl;9^izP*J|0Lc zcRyWD);++v=ODb}=luYsLh)CTRU2~H=Hpc3q#&Bau7N3o-)#LCu*~pXA>~gRkM+T) z`~yf^@vOiGAK^F_6eJ@CA*vY(s@Q43?!%b=ez1RRJ>`lER`6Cp8!#Fb77Nh!gk@E^6aNR1HjV za@^dmO$SSUsC#{l3a5c~qNrKGhTs7TdaUsD=QdiliXaahn?pK`8^fj}QdM-b zz;+N>_0_B2KT(w{8B^7VDei~Ok9q$5jao98Wd~WPpJjE(@oZI(f`iSju0s2J(nV=w>L+`b# zJ5A%mu@lz?{g1?rFI)q-d&O?eW8=eP*-?HDu4wM{Cdzfr38iivAB4?VL7an*AT;se z@v(+D!Dk!Dv>TJmd;g?&jXNP3Kp2jz0jbc~+@}GXr&llE_kyI^v(ppCamMS<7B(Ry z-;OuMwmUW81GG2qQ+D7vk#l zF0zLVsC*DUD5Fb~=8oGYx!${#EH7zg^Y!qJae=h1lJkU7> L75TJNhTi`R)HwxX literal 0 HcmV?d00001 diff --git a/docs/native-visuals/android-results.png b/docs/native-visuals/android-results.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6412bcafd2cc3891bb2d13b31530879f944bf6 GIT binary patch literal 41716 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 Date: Wed, 21 Oct 2026 13:38:38 +0000 Subject: [PATCH 04/16] Allow native result titles and the iOS home heading to wrap --- apps/ios/Explorer/ExplorerApp.swift | 2 +- apps/ios/Explorer/VaultTheme.swift | 4 ++-- docs/clients.md | 2 +- docs/native-visual-style.md | 6 +++++- docs/native-visuals/ios-result.png | Bin 0 -> 118757 bytes docs/public-sample-validation.md | 2 +- 6 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 docs/native-visuals/ios-result.png diff --git a/apps/ios/Explorer/ExplorerApp.swift b/apps/ios/Explorer/ExplorerApp.swift index 3aadad7..1bc4894 100644 --- a/apps/ios/Explorer/ExplorerApp.swift +++ b/apps/ios/Explorer/ExplorerApp.swift @@ -116,7 +116,7 @@ struct ResultView:View{ var body:some View { VStack(alignment: .leading, spacing: 10) { Image("vault_star").resizable().scaledToFit().frame(width:28,height:28).accessibilityHidden(true) - Text(record.text("traitName")).font(VaultStyle.cardTitle) + Text(record.text("traitName")).font(VaultStyle.cardTitle).fixedSize(horizontal:false, vertical:true) Text("\(record.text("matchedSnp")): \(record.text("userGenotype")) • \(record.text("effectType","OR")) \(record.number("riskScore"),specifier:"%.3f")") Text(record.text("riskLevel")) Text(evidence).font(.custom("SpaceGrotesk-Regular",size:12,relativeTo:.caption)) diff --git a/apps/ios/Explorer/VaultTheme.swift b/apps/ios/Explorer/VaultTheme.swift index 5d42c9b..6769499 100644 --- a/apps/ios/Explorer/VaultTheme.swift +++ b/apps/ios/Explorer/VaultTheme.swift @@ -58,8 +58,8 @@ struct VaultHero: View { Image("vault_brand_mark").resizable().scaledToFit().frame(height: 64).frame(maxWidth: .infinity).accessibilityHidden(true) Image("vault_wordmark").resizable().scaledToFit().frame(height: 36).frame(maxWidth: .infinity).accessibilityLabel("Monadic DNA") Text("EXPLORER").font(.custom("SpaceGrotesk-Regular", size: 12, relativeTo: .caption)).tracking(4).frame(maxWidth: .infinity) - Text("Your DNA. Your discoveries.").font(VaultStyle.heading()) - Text("Explore genetic research while your DNA remains private, protected, and in your hands.").font(VaultStyle.body()) + Text("Your DNA. Your discoveries.").font(VaultStyle.heading()).fixedSize(horizontal:false, vertical:true) + Text("Explore genetic research while your DNA remains private, protected, and in your hands.").font(VaultStyle.body()).fixedSize(horizontal:false, vertical:true) } .padding(24).frame(maxWidth: .infinity, alignment: .leading) .foregroundStyle(.white).background(VaultStyle.ink, in: RoundedRectangle(cornerRadius: 32)) diff --git a/docs/clients.md b/docs/clients.md index 024155d..6aa1839 100644 --- a/docs/clients.md +++ b/docs/clients.md @@ -76,7 +76,7 @@ xcodebuild -project apps/ios/Explorer.xcodeproj -scheme Explorer \ For a device: `node scripts/build-native.mjs ios device`, open the generated project, set your development team and signing, and run. Rust libraries are linked by platform and architecture. Generate both simulator architectures if building a universal simulator destination. `CARGO_TARGET_DIR` overrides are supported by Android and WASM generation; iOS project linkage expects the default repository `target/` directory. -The macOS CI job builds Rust, generates the project, selects an available iPhone simulator, and runs XCTest. iOS compilation and simulator tests cannot run in the Linux cloud workspace; CI/macOS validation is required before treating that app as verified. +The macOS CI job builds Rust, generates the project, selects an available iPhone simulator, and runs XCTest. iOS compilation and simulator tests run on macOS rather than this Linux workspace. The app build and all five XCTest tests passed in [CI run 39608592827](https://github.com/Monadic-DNA/Explorer/actions/runs/39608592827). ## Privacy, interoperability, and deployment diff --git a/docs/native-visual-style.md b/docs/native-visual-style.md index 0775d50..cf78343 100644 --- a/docs/native-visual-style.md +++ b/docs/native-visual-style.md @@ -20,4 +20,8 @@ Android debug assembly, Kotlin/JNI unit tests and lint passed. Both API 26 emula | --- | --- | | ![Vault-branded Android home](native-visuals/android-home.png) | ![Pastel Android result cards](native-visuals/android-results.png) | -The iOS simulator build and all five XCTest tests passed in [CI run 39608592827](https://github.com/Monadic-DNA/Explorer/actions/runs/39608592827). The iOS `VaultDesignTests` verify that the actual app bundle contains all four fonts and five illustrations, and render the home panel and a result card with SwiftUI. CI exports the retained XCTest image attachments as `explorer-ios-visual-snapshots`, alongside the complete `explorer-ios-test-results` bundle. The iOS job also runs the existing native binding and public DNA sample tests. +The iOS simulator build and all five XCTest tests passed in [CI run 39608592827](https://github.com/Monadic-DNA/Explorer/actions/runs/39608592827). The native result-card rendering was also inspected: + +![Vault-styled iOS research result](native-visuals/ios-result.png) + +The iOS `VaultDesignTests` verify that the actual app bundle contains all four fonts and five illustrations, and render the home panel and a result card with SwiftUI. CI exports the retained XCTest image attachments as `explorer-ios-visual-snapshots`, alongside the complete `explorer-ios-test-results` bundle. The iOS job also runs the existing native binding and public DNA sample tests. diff --git a/docs/native-visuals/ios-result.png b/docs/native-visuals/ios-result.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9765fbe2c86deee638038d0d927c004d62f86e GIT binary patch literal 118757 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ˢh5go<5=QUJG61g7}4f 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 M)@dn5WmSfb;yWu{5Xj~K1g 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Ðx$ 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 Ur5dN@BjlH&tcpyPlu7Xa0Y+$8-2eap literal 0 HcmV?d00001 diff --git a/docs/public-sample-validation.md b/docs/public-sample-validation.md index b5b32c5..9843de8 100644 --- a/docs/public-sample-validation.md +++ b/docs/public-sample-validation.md @@ -27,7 +27,7 @@ Expected and verified web/native binding results: **142 matched study records**. | Android native binding | Kotlin/JNA calling the actual Rust library with the full file, all 1,000 studies, and TSV round-trip | Passed: identical counts and all 142 results | | Android app | Instrumented Compose test: app import method, Results navigation, Run all button, HTTP fixture transport, visible results, all scores, TSV round-trip | Passed on Android 8/API 26 emulator: 929,696 variants, all 142 corrected results agree; two UI tests passed | | iOS Rust target | `cargo check --features ffi --target aarch64-apple-ios` | Passed | -| iOS app | Full-file Swift binding test and app file-import/published-result test | Prepared; not executed because this workspace is Linux and has no Xcode/iOS Simulator | +| iOS app | Full-file Swift binding test and app file-import/published-result test | Passed on macOS CI / iOS Simulator ([run](https://github.com/Monadic-DNA/Explorer/actions/runs/39608592827)) | The browser test seeds the real IndexedDB catalog with the frozen study snapshot. It blocks optional external account/analytics/provider traffic, while loading the SQL.js dependency through the configured proxy with TLS verification. It therefore does not verify login, purchases, or LLM reports. The Android UI test uses MockWebServer to deliver the same frozen snapshot through the application's real HTTP code. The local backend's corresponding 1,000-record Run All API response was also checked separately. From 2a6ac3ab332d8d1706e068d2afecd4deeec48c0b Mon Sep 17 00:00:00 2001 From: Vishakh Vishakh Date: Wed, 21 Oct 2026 17:17:59 +0000 Subject: [PATCH 05/16] Add verified Apple and Google Play purchases with shared account entitlements --- .env.local.example | 13 + .github/workflows/pr-build.yml | 21 + app/api/check-subscription/route.ts | 15 + app/api/mobile-billing/account/route.ts | 15 + .../apple-notifications/route.ts | 23 + .../google-notifications/route.ts | 50 + app/api/mobile-billing/verify/route.ts | 17 + app/api/report-access/route.ts | 29 +- app/components/AuthProvider.tsx | 4 +- app/overview-report/page.tsx | 2 +- apps/android/app/build.gradle.kts | 1 + .../com/monadicdna/explorer/ExplorerUiTest.kt | 8 + .../com/monadicdna/explorer/ExplorerModel.kt | 16 +- .../com/monadicdna/explorer/MainActivity.kt | 38 +- .../com/monadicdna/explorer/PlayBilling.kt | 125 ++ apps/ios/Explorer/ExplorerApp.swift | 61 +- apps/ios/Explorer/ExplorerStore.swift | 20 +- apps/ios/Explorer/StoreBilling.swift | 89 ++ certs/apple/AppleRootCA-G3.cer | Bin 0 -> 583 bytes certs/apple/README.md | 4 + crates/explorer-core/src/lib.rs | 1 + docs/clients.md | 10 +- docs/mobile-billing.md | 66 + lib/db.ts | 54 +- lib/store-billing/catalog.ts | 30 + lib/store-billing/http.ts | 15 + lib/store-billing/ledger.ts | 74 ++ lib/store-billing/verification.ts | 123 ++ migrations/001-mobile-billing.sql | 25 + next.config.mjs | 1 + package-lock.json | 1066 ++++++++++++++--- package.json | 9 +- scripts/migrate-mobile-billing.mjs | 9 + shared/billing-catalog.json | 6 + tests/store-billing-ledger.test.ts | 42 + tests/store-billing.test.ts | 71 ++ 36 files changed, 1840 insertions(+), 313 deletions(-) create mode 100644 app/api/mobile-billing/account/route.ts create mode 100644 app/api/mobile-billing/apple-notifications/route.ts create mode 100644 app/api/mobile-billing/google-notifications/route.ts create mode 100644 app/api/mobile-billing/verify/route.ts create mode 100644 apps/android/app/src/main/java/com/monadicdna/explorer/PlayBilling.kt create mode 100644 apps/ios/Explorer/StoreBilling.swift create mode 100644 certs/apple/AppleRootCA-G3.cer create mode 100644 certs/apple/README.md create mode 100644 docs/mobile-billing.md create mode 100644 lib/store-billing/catalog.ts create mode 100644 lib/store-billing/http.ts create mode 100644 lib/store-billing/ledger.ts create mode 100644 lib/store-billing/verification.ts create mode 100644 migrations/001-mobile-billing.sql create mode 100644 scripts/migrate-mobile-billing.mjs create mode 100644 shared/billing-catalog.json create mode 100644 tests/store-billing-ledger.test.ts create mode 100644 tests/store-billing.test.ts diff --git a/.env.local.example b/.env.local.example index d081a52..5f9ce01 100644 --- a/.env.local.example +++ b/.env.local.example @@ -134,3 +134,16 @@ NEXT_PUBLIC_X_PIXEL_ID=r9lkr # Format: Long OAuth 2.0 Bearer token (e.g., AAAAAAAAAAAAAAAAAAAAAMLheAAAAAAA0%2BuSeid...) # IMPORTANT: This is different from your main X API token - it's specifically for Conversions API X_CONVERSIONS_API_TOKEN=your_x_api_token_here + +# Native store billing (server-only). See docs/mobile-billing.md before enabling. +MOBILE_BILLING_ENABLED=false +MOBILE_BILLING_TOKEN_KEY= +APPLE_IAP_ISSUER_ID= +APPLE_IAP_KEY_ID= +APPLE_IAP_PRIVATE_KEY= +APPLE_APP_ID= +APPLE_STORE_ENVIRONMENT=Production +GOOGLE_PLAY_SERVICE_ACCOUNT_JSON= +GOOGLE_PLAY_ALLOW_TEST_PURCHASES=false +GOOGLE_RTDN_AUDIENCE= +GOOGLE_RTDN_SERVICE_ACCOUNT_EMAIL= diff --git a/.github/workflows/pr-build.yml b/.github/workflows/pr-build.yml index c04517b..6919bbf 100644 --- a/.github/workflows/pr-build.yml +++ b/.github/workflows/pr-build.yml @@ -10,6 +10,19 @@ jobs: build: runs-on: ubuntu-latest + services: + billing-postgres: + image: postgres:17 + env: + POSTGRES_USER: explorer + POSTGRES_PASSWORD: billing-test-only + POSTGRES_DB: billing_test + ports: + - 5432:5432 + options: >- + --health-cmd "pg_isready -U explorer -d billing_test" + --health-interval 5s --health-timeout 5s --health-retries 10 + strategy: matrix: node-version: [24.x] @@ -27,6 +40,14 @@ jobs: - name: Install dependencies run: npm ci + - name: Verify store billing and atomic purchase ledger + run: | + node scripts/migrate-mobile-billing.mjs + npm run test:billing + env: + POSTGRES_DB: postgresql://explorer:billing-test-only@127.0.0.1:5432/billing_test + BILLING_DB_TEST: 'true' + - name: Install shared core toolchain run: rustup show active-toolchain diff --git a/app/api/check-subscription/route.ts b/app/api/check-subscription/route.ts index 63934b3..a302b89 100644 --- a/app/api/check-subscription/route.ts +++ b/app/api/check-subscription/route.ts @@ -3,6 +3,8 @@ import '@/lib/fetch-polyfill'; import { NextRequest, NextResponse } from 'next/server'; import { checkCombinedSubscription } from '@/lib/subscription-manager'; +import { mobileBillingEnabled, mobileEntitlements } from '@/lib/store-billing/ledger'; +import { verifyWalletAuth } from '@/lib/dynamic-auth'; export async function POST(request: NextRequest) { try { @@ -23,6 +25,19 @@ export async function POST(request: NextRequest) { ); } + if (mobileBillingEnabled() && request.headers.get('authorization')) { + const auth = await verifyWalletAuth(request.headers.get('authorization'), walletAddress); + if (!auth.ok) return NextResponse.json({ error:auth.error }, { status:auth.status || 401 }); + const mobile = await mobileEntitlements(walletAddress); + if (mobile.isActive) { + return NextResponse.json({ success:true, subscription:{ + isActive:true, expiresAt:mobile.expiresAt?.toISOString(), + daysRemaining:Math.max(0,Math.ceil((mobile.expiresAt!.getTime()-Date.now())/86400000)), + totalDaysPurchased:0, totalPaid:0, paymentCount:0, source:'app_store_or_google_play', + } }, { headers:{'Cache-Control':'no-store'} }); + } + } + // Query both blockchain (Alchemy) and Stripe payments // Combined subscription includes payments from both sources console.log('[Subscription Check] Checking combined subscription (blockchain + Stripe)'); diff --git a/app/api/mobile-billing/account/route.ts b/app/api/mobile-billing/account/route.ts new file mode 100644 index 0000000..fc80327 --- /dev/null +++ b/app/api/mobile-billing/account/route.ts @@ -0,0 +1,15 @@ +import { NextResponse } from 'next/server'; +import { billingAccount, tokenKey } from '@/lib/store-billing/ledger'; +import { authenticatedBillingWallet, billingFailure } from '@/lib/store-billing/http'; +import { assertStoreConfigured } from '@/lib/store-billing/verification'; +import { BillingError, catalog } from '@/lib/store-billing/catalog'; +export const runtime = 'nodejs'; +export async function POST(request: Request) { + try { + const body = await request.json(); + const wallet = await authenticatedBillingWallet(request,body.walletAddress); + if (body.store !== 'apple' && body.store !== 'google') throw new BillingError('Invalid store'); + tokenKey(); assertStoreConfigured(body.store); + return NextResponse.json({ accountId:await billingAccount(wallet), products:catalog },{ headers:{'Cache-Control':'no-store'} }); + } catch (error) { return billingFailure(error); } +} diff --git a/app/api/mobile-billing/apple-notifications/route.ts b/app/api/mobile-billing/apple-notifications/route.ts new file mode 100644 index 0000000..f143808 --- /dev/null +++ b/app/api/mobile-billing/apple-notifications/route.ts @@ -0,0 +1,23 @@ +import { NextResponse } from 'next/server'; +import { appleServices, verifyStorePurchase } from '@/lib/store-billing/verification'; +import { mobileBillingEnabled, recordPurchase } from '@/lib/store-billing/ledger'; +import { BillingError } from '@/lib/store-billing/catalog'; +import { billingFailure } from '@/lib/store-billing/http'; +import { getDb } from '@/lib/db'; +export const runtime = 'nodejs'; +export async function POST(request: Request) { + try { + if (!mobileBillingEnabled()) throw new BillingError('Billing is not configured',503); + const body = await request.json(); + if (typeof body.signedPayload !== 'string' || body.signedPayload.length > 100000) throw new BillingError('Invalid notification'); + const { verifier } = appleServices(); + const notification = await verifier.verifyAndDecodeNotification(body.signedPayload); + if (notification.data?.signedTransactionInfo) { + const tx = await verifier.verifyAndDecodeTransaction(notification.data.signedTransactionInfo); + if (!tx.appAccountToken || !tx.transactionId || !tx.productId) throw new BillingError('Missing purchase account'); + const owner = await getDb().query('SELECT id FROM mobile_billing_accounts WHERE id=$1',[tx.appAccountToken]); + if (owner.rowCount) await recordPurchase(await verifyStorePurchase('apple',tx.transactionId,tx.productId,tx.appAccountToken.toLowerCase())); + } + return new NextResponse(null,{status:204}); + } catch (error) { return billingFailure(error); } +} diff --git a/app/api/mobile-billing/google-notifications/route.ts b/app/api/mobile-billing/google-notifications/route.ts new file mode 100644 index 0000000..cdde5a2 --- /dev/null +++ b/app/api/mobile-billing/google-notifications/route.ts @@ -0,0 +1,50 @@ +import { NextResponse } from 'next/server'; +import { OAuth2Client } from 'google-auth-library'; +import { createHash } from 'node:crypto'; +import { readGooglePurchase, verifyStorePurchase, completeGooglePurchase } from '@/lib/store-billing/verification'; +import { mobileBillingEnabled, recordPurchase } from '@/lib/store-billing/ledger'; +import { BillingError, catalog, required } from '@/lib/store-billing/catalog'; +import { billingFailure } from '@/lib/store-billing/http'; +import { getDb } from '@/lib/db'; +export const runtime = 'nodejs'; +export async function POST(request: Request) { + try { + if (!mobileBillingEnabled()) throw new BillingError('Billing is not configured',503); + const authorization = request.headers.get('authorization'); + if (!authorization?.startsWith('Bearer ')) throw new BillingError('Authentication required',401); + const ticket = await new OAuth2Client().verifyIdToken({ idToken:authorization.slice(7), audience:required('GOOGLE_RTDN_AUDIENCE') }); + const identity = ticket.getPayload(); + if (identity?.email !== required('GOOGLE_RTDN_SERVICE_ACCOUNT_EMAIL') || identity.email_verified !== true) throw new BillingError('Invalid notification identity',403); + const body = await request.json(); + if (typeof body.message?.data !== 'string' || body.message.data.length > 100000) throw new BillingError('Invalid notification'); + const notification = JSON.parse(Buffer.from(body.message.data,'base64').toString('utf8')); + if (notification.packageName !== 'com.monadicdna.explorer') throw new BillingError('Incorrect package'); + const oneTime = notification.oneTimeProductNotification; + const subscription = notification.subscriptionNotification; + const voided = notification.voidedPurchaseNotification; + const proof = oneTime?.purchaseToken || subscription?.purchaseToken || voided?.purchaseToken; + if (typeof proof !== 'string' || !proof || proof.length > 8192) { + if (notification.testNotification) return new NextResponse(null,{status:204}); + throw new BillingError('Missing purchase token'); + } + let productId: string | undefined = oneTime?.sku; + let accountId: string | undefined; + if (voided) { + const existing = await getDb().query('SELECT product_id,account_id FROM mobile_store_purchases WHERE store=$1 AND purchase_id=$2',['google',createHash('sha256').update(proof).digest('hex')]); + productId = existing.rows[0]?.product_id; accountId = existing.rows[0]?.account_id; + if (!accountId) return new NextResponse(null,{status:204}); + } else { + const data = await readGooglePurchase(proof,productId); + productId ||= data.lineItems?.find(line => catalog.some(product => product.id===line.productId))?.productId; + accountId = oneTime ? data.obfuscatedExternalAccountId : data.externalAccountIdentifiers?.obfuscatedExternalAccountId; + } + if (!productId || !accountId || !/^[0-9a-f-]{36}$/i.test(accountId)) throw new BillingError('Missing purchase account/product'); + const owner = await getDb().query('SELECT id FROM mobile_billing_accounts WHERE id=$1',[accountId]); + if (owner.rowCount) { + const purchase = await verifyStorePurchase('google',proof,productId,accountId); + await recordPurchase(purchase); + await completeGooglePurchase(purchase); + } + return new NextResponse(null,{status:204}); + } catch (error) { return billingFailure(error); } +} diff --git a/app/api/mobile-billing/verify/route.ts b/app/api/mobile-billing/verify/route.ts new file mode 100644 index 0000000..9b3477f --- /dev/null +++ b/app/api/mobile-billing/verify/route.ts @@ -0,0 +1,17 @@ +import { NextResponse } from 'next/server'; +import { billingAccount, recordPurchase } from '@/lib/store-billing/ledger'; +import { authenticatedBillingWallet, billingFailure } from '@/lib/store-billing/http'; +import { BillingError } from '@/lib/store-billing/catalog'; +import { completeGooglePurchase, verifyStorePurchase } from '@/lib/store-billing/verification'; +export const runtime = 'nodejs'; +export async function POST(request: Request) { + try { + const body = await request.json(); + const wallet = await authenticatedBillingWallet(request,body.walletAddress); + if ((body.store !== 'apple' && body.store !== 'google') || typeof body.proof !== 'string' || typeof body.productId !== 'string') throw new BillingError('Invalid purchase'); + const purchase = await verifyStorePurchase(body.store,body.proof,body.productId,await billingAccount(wallet)); + await recordPurchase(purchase); // Idempotent durable commit happens before client finish/acknowledgement/consumption. + if (purchase.store === 'google') await completeGooglePurchase(purchase); + return NextResponse.json({ accepted:true },{ headers:{'Cache-Control':'no-store'} }); + } catch (error) { return billingFailure(error); } +} diff --git a/app/api/report-access/route.ts b/app/api/report-access/route.ts index b5bf8c2..5e01684 100644 --- a/app/api/report-access/route.ts +++ b/app/api/report-access/route.ts @@ -3,6 +3,7 @@ import { randomUUID } from 'crypto'; import Stripe from 'stripe'; import { isPaidReportType, PAID_REPORT_TYPES, PaidReportType } from '@/lib/report-access'; import { verifyWalletAuth } from '@/lib/dynamic-auth'; +import { mobileBillingEnabled, mobileEntitlements, consumeMobileReport } from '@/lib/store-billing/ledger'; const stripe = new Stripe(process.env.STRIPE_SECRET_KEY || 'sk_test_placeholder', { apiVersion: '2026-09-30.endive', @@ -128,16 +129,22 @@ export async function POST(request: NextRequest) { return NextResponse.json({ error: 'Invalid wallet address format' }, { status: 400 }); } - if (!process.env.STRIPE_SECRET_KEY) { - return NextResponse.json({ error: 'Stripe is not configured' }, { status: 500 }); + const includeMobile = mobileBillingEnabled() && !!request.headers.get('authorization'); + if (includeMobile || action === 'consume') { + const auth = await verifyWalletAuth(request.headers.get('authorization'), normalizedWallet); + if (!auth.ok) return NextResponse.json({ error:auth.error }, { status:auth.status || 401 }); + } + const mobile = includeMobile ? await mobileEntitlements(normalizedWallet) : null; + if (!process.env.STRIPE_SECRET_KEY && !includeMobile) { + return NextResponse.json({ error:'Payments are not configured' }, { status:503 }); } if (action === 'check') { - const payments = await collectUnusedPayments(normalizedWallet, sessionId); + const payments = process.env.STRIPE_SECRET_KEY ? await collectUnusedPayments(normalizedWallet, sessionId) : []; const availableReports = Object.fromEntries( PAID_REPORT_TYPES.map(type => [ type, - payments.filter(payment => payment.metadata.reportType === type).length, + payments.filter(payment => payment.metadata.reportType === type).length + (mobile?.availableReports[type] || 0), ]) ); @@ -147,21 +154,15 @@ export async function POST(request: NextRequest) { }); } - // Consuming passes mutates paid state, so it requires proof that the - // caller owns the wallet. - if (action === 'consume') { - const auth = await verifyWalletAuth(request.headers.get('authorization'), normalizedWallet); - if (!auth.ok) { - return NextResponse.json({ error: auth.error }, { status: auth.status || 401 }); - } - } - if (action === 'consume') { if (!isPaidReportType(reportType)) { return NextResponse.json({ error: 'Invalid report type' }, { status: 400 }); } - const payments = await collectUnusedPayments(normalizedWallet, sessionId, reportType); + if (includeMobile && await consumeMobileReport(normalizedWallet, reportType)) { + return NextResponse.json({ success:true, source:'mobile_store' }); + } + const payments = process.env.STRIPE_SECRET_KEY ? await collectUnusedPayments(normalizedWallet, sessionId, reportType) : []; const consumedPaymentIntentId = await consumeOnePayment(payments); if (!consumedPaymentIntentId) { diff --git a/app/components/AuthProvider.tsx b/app/components/AuthProvider.tsx index aaa1661..5a77484 100644 --- a/app/components/AuthProvider.tsx +++ b/app/components/AuthProvider.tsx @@ -1,6 +1,6 @@ "use client"; -import { DynamicContextProvider, DynamicWidget, useDynamicContext } from '@dynamic-labs/sdk-react-core'; +import { DynamicContextProvider, DynamicWidget, useDynamicContext, getAuthToken } from '@dynamic-labs/sdk-react-core'; import { EthereumWalletConnectors } from '@dynamic-labs/ethereum'; import { createContext, useContext, useEffect, useState, useCallback, ReactNode } from 'react'; import { trackSignInStarted, trackUserLoggedIn, trackUserLoggedOut } from '@/lib/analytics'; @@ -125,7 +125,7 @@ export function AuthProvider({ children }: { children: ReactNode }) { // Query API directly - no caching const response = await fetch('/api/check-subscription', { method: 'POST', - headers: { 'Content-Type': 'application/json' }, + headers: { 'Content-Type': 'application/json', ...(getAuthToken() ? { Authorization:`Bearer ${getAuthToken()}` } : {}) }, body: JSON.stringify({ walletAddress }), }); diff --git a/app/overview-report/page.tsx b/app/overview-report/page.tsx index f2b3f25..03c2288 100644 --- a/app/overview-report/page.tsx +++ b/app/overview-report/page.tsx @@ -102,7 +102,7 @@ export default function OverviewReportPage() { try { const response = await fetch('/api/report-access', { method: 'POST', - headers: { 'Content-Type': 'application/json' }, + headers: { 'Content-Type': 'application/json', ...(getAuthToken() ? { Authorization:`Bearer ${getAuthToken()}` } : {}) }, body: JSON.stringify({ walletAddress, action: 'check', diff --git a/apps/android/app/build.gradle.kts b/apps/android/app/build.gradle.kts index 27c89eb..bd66ff6 100644 --- a/apps/android/app/build.gradle.kts +++ b/apps/android/app/build.gradle.kts @@ -25,6 +25,7 @@ android { } } dependencies { + implementation("com.android.billingclient:billing-ktx:8.0.0") val composeBom = platform("androidx.compose:compose-bom:2025.04.01") implementation(composeBom) androidTestImplementation(composeBom) diff --git a/apps/android/app/src/androidTest/java/com/monadicdna/explorer/ExplorerUiTest.kt b/apps/android/app/src/androidTest/java/com/monadicdna/explorer/ExplorerUiTest.kt index 6723144..8b83ef2 100644 --- a/apps/android/app/src/androidTest/java/com/monadicdna/explorer/ExplorerUiTest.kt +++ b/apps/android/app/src/androidTest/java/com/monadicdna/explorer/ExplorerUiTest.kt @@ -4,11 +4,19 @@ import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.performClick +import androidx.compose.ui.test.performScrollTo import org.junit.Rule import org.junit.Test class ExplorerUiTest { @get:Rule val activity=createAndroidComposeRule() + @Test fun stablecoinPaymentsAreWebOnly() { + activity.onNodeWithText("More").performClick() + activity.onNodeWithText("Account").performScrollTo().performClick() + activity.onNodeWithText("Stablecoin payments are available only on Web. They are not available in the Android app.").performScrollTo().assertIsDisplayed() + activity.onNodeWithText("Subscribe with card").assertDoesNotExist() + activity.onNodeWithText("Manage subscription or pay with a connected wallet").assertDoesNotExist() + } @Test fun nativeHomeAndResultsNavigation() { activity.onNodeWithText("Your DNA. Your discoveries.").assertIsDisplayed() activity.onNodeWithText("Results").performClick() diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt index 7d4470c..7385689 100644 --- a/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt @@ -177,21 +177,21 @@ class ExplorerModel(app: Application) : AndroidViewModel(app) { store.put("auth-token",auth.getString("token"));wallet=auth.getString("walletAddress");store.put("wallet",wallet);store.remove("pending-auth") subscription=api("/api/check-subscription",json("walletAddress" to wallet)) } + val billing = PlayBilling(app, viewModelScope, { wallet }, { path, body -> api(path,body) }, ::refreshSubscription) + override fun onCleared() { billing.close(); Core.call("session_close",json("session" to session)); super.onCleared() } fun signOut(){store.remove("auth-token");store.remove("wallet");store.remove("pending-auth");wallet="";subscription=null} fun refreshSubscription() = run("Checking subscription") { require(wallet.isNotBlank()){ "Sign in first" };subscription=api("/api/check-subscription",json("walletAddress" to wallet)) } - suspend fun checkout(): String { require(wallet.isNotBlank()){ "Sign in first" };return api("/api/stripe/create-checkout",json("walletAddress" to wallet)).getString("url") } - fun applyPromo(code: String) { val response=Core.obj("promo",code);require(response.getBoolean("valid")){response.getString("message")};store.put("promo",code);status=response.getString("message") } private suspend fun requireAccess(kind: String) { - var access=Core.obj("feature_access",json("kind" to kind,"promo" to store.get("promo"))) + var access=Core.obj("feature_access",json("kind" to kind)) if(access.getBoolean("allowed"))return - require(wallet.isNotBlank()){ "Sign in or apply a premium promo code in Account first." } + require(wallet.isNotBlank()){ "Sign in to your Explorer account first." } subscription=api("/api/check-subscription",json("walletAddress" to wallet)) - access=Core.obj("feature_access",json("kind" to kind,"promo" to store.get("promo"),"activeSubscription" to subscription?.optJSONObject("subscription")?.optBoolean("isActive"))) + access=Core.obj("feature_access",json("kind" to kind,"activeSubscription" to subscription?.optJSONObject("subscription")?.optBoolean("isActive"))) if(access.getBoolean("allowed"))return - require(!access.isNull("reportType")){ "An active subscription or premium promo is required for chat." } + require(!access.isNull("reportType")){ "An active subscription is required for chat." } val type=access.getString("reportType") val passes=api("/api/report-access",json("walletAddress" to wallet)) - require(passes.getJSONObject("availableReports").optInt(type)>0){ "Subscribe or buy a $kind report pass on the website, then try again." } + require(passes.getJSONObject("availableReports").optInt(type)>0){ "Purchase a subscription or report pass in Account, then try again." } api("/api/report-access",json("walletAddress" to wallet,"reportType" to type,"action" to "consume")) } private fun llmConfig()=json("provider" to provider,"model" to model,"huggingfaceApiKey" to apiKey,"ollamaAddress" to ollamaAddress,"ollamaPort" to (ollamaPort.toIntOrNull()?:11434)) @@ -254,5 +254,5 @@ class ExplorerModel(app: Application) : AndroidViewModel(app) { val reduce=Core.call("render_prompt",json("name" to "generateReducePrompt","values" to json("groupSummaries" to JSONArray(summaries),"userContext" to userContext))) as String report=complete(JSONArray().put(json("role" to "user","content" to reduce))) } - override fun onCleared(){Core.call("session_close",json("session" to session));super.onCleared()} + } diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt index 7d1469e..fa29bff 100644 --- a/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt @@ -36,6 +36,7 @@ class MainActivity: ComponentActivity() { intent?.data?.takeIf{it.scheme=="monadicexplorer"&&it.host=="auth"}?.let(model::receiveAuth) setContent { VaultTheme { ExplorerApp(model) } } } + override fun onResume() { super.onResume(); if(model.wallet.isNotBlank()) model.billing.restore() } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent);setIntent(intent);intent.data?.takeIf{it.scheme=="monadicexplorer"&&it.host=="auth"}?.let(model::receiveAuth) } } @@ -199,16 +200,35 @@ private fun readDocument(context: android.content.Context, uri: Uri, max: Int=15 }} @Composable private fun AccountScreen(model: ExplorerModel){ - val context=LocalContext.current;var promo by remember{mutableStateOf("")} - ScreenColumn{Text("Account and premium",style=MaterialTheme.typography.headlineMedium);Text(model.wallet.ifBlank{"Not signed in"}) + val context=LocalContext.current + val billing=model.billing + LaunchedEffect(Unit) { billing.load() } + ScreenColumn{ + Text("Account and premium",style=MaterialTheme.typography.headlineMedium) + Text(model.wallet.ifBlank{"Not signed in"}) Button(onClick={model.run("Opening secure sign-in"){openBrowser(context,model.beginAuth())}},enabled=!model.busy){Text("Sign in with Dynamic")} - OutlinedButton(onClick=model::refreshSubscription,enabled=!model.busy&&model.wallet.isNotBlank()){Text("Refresh subscription and blockchain payments")} - model.subscription?.let{Text(it.toString(2))} - Button(onClick={model.run("Opening card checkout"){openBrowser(context,model.checkout())}},enabled=!model.busy&&model.wallet.isNotBlank()){Text("Subscribe with card")} - TextButton(onClick={openBrowser(context,model.backend.trimEnd('/')+"/subscribe")}){Text("Manage subscription or pay with a connected wallet")} - OutlinedTextField(value=promo,onValueChange={promo=it},label={Text("Promo code")}) - OutlinedButton(onClick={model.run("Checking promo"){model.applyPromo(promo)}}){Text("Apply code")} + OutlinedButton(onClick=model::refreshSubscription,enabled=!model.busy&&model.wallet.isNotBlank()){Text("Refresh access")} + model.subscription?.optJSONObject("subscription")?.let { Text(if(it.optBoolean("isActive")) "Premium access is active" else "No active subscription") } + Text("Google Play purchases",style=MaterialTheme.typography.titleLarge) + Text("Sign in to associate purchases with your Explorer account. Prices and payment confirmation are provided by Google Play.") + billing.products.forEach { product -> + Card(Modifier.fillMaxWidth()) { Column(Modifier.padding(16.dp),verticalArrangement=Arrangement.spacedBy(8.dp)) { + Text(product.name,style=MaterialTheme.typography.titleMedium) + Text(product.description) + val price=billing.price(product) + Button(onClick={billing.purchase(context as android.app.Activity,product)},enabled=!billing.busy&&model.wallet.isNotBlank()&&price!=null) { + Text(if(product.productType==com.android.billingclient.api.BillingClient.ProductType.SUBS) "Subscribe — $price / month" else "Buy — $price") + } + } } + } + OutlinedButton(onClick=billing::load,enabled=!billing.busy){Text("Reload products")} + OutlinedButton(onClick=billing::restore,enabled=!billing.busy&&model.wallet.isNotBlank()){Text("Restore purchases")} + TextButton(onClick={openBrowser(context,"https://play.google.com/store/account/subscriptions?package=com.monadicdna.explorer")}){Text("Manage Google Play subscriptions")} + if(billing.busy) CircularProgressIndicator() + if(billing.message.isNotBlank()) Text(billing.message) + Text("The monthly subscription renews automatically unless cancelled in Google Play. One-time report purchases each provide one report run.",style=MaterialTheme.typography.bodySmall) + Text("Stablecoin payments",style=MaterialTheme.typography.titleLarge) + Text("Stablecoin payments are available only on Web. They are not available in the Android app.") TextButton(onClick=model::signOut){Text("Sign out")} - Text("Payment providers and wallet authorization open in your system browser. No server API keys are embedded in this app.",style=MaterialTheme.typography.bodySmall) } } diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/PlayBilling.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/PlayBilling.kt new file mode 100644 index 0000000..127847d --- /dev/null +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/PlayBilling.kt @@ -0,0 +1,125 @@ +package com.monadicdna.explorer + +import android.app.Activity +import android.app.Application +import androidx.compose.runtime.* +import com.android.billingclient.api.* +import kotlinx.coroutines.* +import org.json.JSONObject +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException + +/** Play owns the payment UI; the backend verifies and records each token before acknowledgement. */ +class PlayBilling( + app: Application, + private val scope: CoroutineScope, + private val wallet: () -> String, + private val api: suspend (String, JSONObject) -> JSONObject, + private val refresh: () -> Unit +) : PurchasesUpdatedListener { + var products by mutableStateOf(emptyList()) + private set + var busy by mutableStateOf(false) + private set + var message by mutableStateOf("") + private set + private val inFlight = mutableSetOf() + private val catalog get() = Core.arr("billing_catalog").objects() + private val client = BillingClient.newBuilder(app).setListener(this) + .enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()) + .enableAutoServiceReconnection().build() + private suspend fun connect() { + if (client.isReady) return + suspendCancellableCoroutine { continuation -> + client.startConnection(object : BillingClientStateListener { + override fun onBillingSetupFinished(result: BillingResult) { + if (!continuation.isActive) return + if (result.responseCode == BillingClient.BillingResponseCode.OK) continuation.resume(Unit) + else continuation.resumeWithException(IllegalStateException("Google Play billing is unavailable. Please try again.")) + } + override fun onBillingServiceDisconnected() { /* The SDK reconnects on the next request. */ } + }) + } + } + private fun run(block: suspend () -> Unit) { + if (busy) return + busy=true; message="" + scope.launch { try { connect(); block() } catch (e:Exception) { message=e.message ?: "Purchase could not be completed. Please retry." } finally { busy=false } } + } + fun load() = run { + val found = mutableListOf() + for (type in listOf(BillingClient.ProductType.SUBS, BillingClient.ProductType.INAPP)) { + val items = catalog.filter { (it.getString("kind")=="subscription") == (type==BillingClient.ProductType.SUBS) } + .map { QueryProductDetailsParams.Product.newBuilder().setProductId(it.getString("id")).setProductType(type).build() } + val params = QueryProductDetailsParams.newBuilder().setProductList(items).build() + val details = suspendCancellableCoroutine> { continuation -> + client.queryProductDetailsAsync(params) { result, response -> + if (!continuation.isActive) return@queryProductDetailsAsync + if (result.responseCode==BillingClient.BillingResponseCode.OK) continuation.resume(response.productDetailsList) + else continuation.resumeWithException(IllegalStateException("Unable to load Google Play products.")) + } + } + found.addAll(details) + } + products=found.sortedBy { it.productId } + if (products.isEmpty()) message="Purchases are not available yet. Please try again later." + } + fun price(product: ProductDetails): String? = if (product.productType==BillingClient.ProductType.SUBS) + offer(product)?.pricingPhases?.pricingPhaseList?.lastOrNull()?.formattedPrice + else product.oneTimePurchaseOfferDetails?.formattedPrice + private fun offer(product: ProductDetails) = product.subscriptionOfferDetails?.firstOrNull { it.offerId==null && it.pricingPhases.pricingPhaseList.lastOrNull()?.billingPeriod=="P1M" } + fun purchase(activity: Activity, product: ProductDetails) = run { + require(wallet().isNotBlank()) { "Sign in before purchasing." } + val response=api("/api/mobile-billing/account",json("walletAddress" to wallet(),"store" to "google")) + val details=BillingFlowParams.ProductDetailsParams.newBuilder().setProductDetails(product) + if(product.productType==BillingClient.ProductType.SUBS) details.setOfferToken(requireNotNull(offer(product)?.offerToken) { "Monthly subscription is not available." }) + val params=BillingFlowParams.newBuilder().setProductDetailsParamsList(listOf(details.build())) + .setObfuscatedAccountId(response.getString("accountId")).build() + val result=client.launchBillingFlow(activity,params) + require(result.responseCode==BillingClient.BillingResponseCode.OK) { "Unable to open Google Play checkout." } + } + override fun onPurchasesUpdated(result: BillingResult, purchases: MutableList?) { + when(result.responseCode) { + BillingClient.BillingResponseCode.OK -> scope.launch { purchases.orEmpty().forEach { deliverSafely(it) } } + BillingClient.BillingResponseCode.USER_CANCELED -> message="Purchase cancelled." + BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED -> restore() + else -> message="Google Play could not complete the purchase. Please try again." + } + } + private suspend fun deliverSafely(purchase: Purchase) { + try { deliver(purchase) } catch(e:Exception) { message=e.message ?: "Verification is pending. Restore purchases to retry." } + } + private suspend fun deliver(purchase: Purchase) { + if(purchase.purchaseState != Purchase.PurchaseState.PURCHASED) { + message="Purchase pending approval. Access will appear after approval and verification."; return + } + if (!inFlight.add(purchase.purchaseToken)) return + try { + require(wallet().isNotBlank()) { "Sign in to the original Explorer account, then restore purchases." } + require(purchase.products.size==1) { "Unexpected purchase contents." } + val id=purchase.products.single() + require(catalog.any { it.getString("id")==id }) { "Unknown product." } + val response=api("/api/mobile-billing/verify",json("walletAddress" to wallet(),"store" to "google","productId" to id,"proof" to purchase.purchaseToken)) + require(response.optBoolean("accepted")) { "Purchase verification is pending. Please retry." } + // The backend acknowledges subscriptions / consumes products only after committing this account credit. + message="Purchase verified. Your account access has been updated." + refresh() + } finally { inFlight.remove(purchase.purchaseToken) } + } + fun restore() = run { + require(wallet().isNotBlank()) { "Sign in to restore purchases." } + for(type in listOf(BillingClient.ProductType.SUBS,BillingClient.ProductType.INAPP)) { + val purchases=suspendCancellableCoroutine> { continuation -> + client.queryPurchasesAsync(QueryPurchasesParams.newBuilder().setProductType(type).build()) { result, list -> + if (!continuation.isActive) return@queryPurchasesAsync + if(result.responseCode==BillingClient.BillingResponseCode.OK) continuation.resume(list) + else continuation.resumeWithException(IllegalStateException("Unable to restore Google Play purchases.")) + } + } + for(purchase in purchases) deliver(purchase) + } + refresh() + message="Purchases restored. Remaining report passes are attached to your Explorer account." + } + fun close() { client.endConnection() } +} diff --git a/apps/ios/Explorer/ExplorerApp.swift b/apps/ios/Explorer/ExplorerApp.swift index 1bc4894..b4db059 100644 --- a/apps/ios/Explorer/ExplorerApp.swift +++ b/apps/ios/Explorer/ExplorerApp.swift @@ -39,7 +39,7 @@ struct ExplorerView: View { NavigationLink("Reports"){ReportsView(export:export)} NavigationLink("On-device vault"){VaultView(password:$vaultPassword,importDNA:{startImport("dna")},importVault:{startImport("vault")},export:export)} NavigationLink("Connection and provider settings"){SettingsView()} - NavigationLink("Account and premium"){AccountView()} + NavigationLink("Account and premium"){AccountView(billing:store.billing)} Section("Supported DNA exports"){Text("23andMe, AncestryDNA, MyHeritage, FTDNA, LivingDNA, Mapmygenome, Monadic DNA and compatible raw files. Gzip archives are supported.")} }.vaultScreen().navigationTitle("More")}.tabItem{Label("More",systemImage:"ellipsis")}.tag(4) } @@ -240,23 +240,46 @@ struct SettingsView:View{ }.vaultScreen().navigationTitle("Settings")} } -struct AccountView:View{ - @EnvironmentObject var store:ExplorerStore - @State private var promo="" - var body:some View{Form{ - Section("Account"){ - Text(store.wallet.isEmpty ? "Not signed in":store.wallet).font(.custom("SpaceGrotesk-Regular",size:12,relativeTo:.caption)).textSelection(.enabled) - Button("Sign in with Dynamic"){do{try store.beginAuth()}catch{store.error=error.localizedDescription}} - Button("Refresh subscription and blockchain payments",action:store.refreshSubscription).disabled(store.wallet.isEmpty||store.busy) - if let status=store.subscription,let data=try? JSONSerialization.data(withJSONObject:status,options:[.prettyPrinted,.sortedKeys]){Text(String(decoding:data,as:UTF8.self)).font(.caption.monospaced())} - Button("Subscribe with card",action:store.checkout).disabled(store.wallet.isEmpty||store.busy) - if let url=URL(string:store.backend.trimmingCharacters(in:CharacterSet(charactersIn:"/"))+"/subscribe"){Link("Manage subscription or pay with connected wallet",destination:url)} - Button("Sign out"){do{try store.signOut()}catch{store.error=error.localizedDescription}} - } - Section("Promo"){ - TextField("Promo code",text:$promo) - Button("Apply code"){do{try store.applyPromo(promo)}catch{store.error=error.localizedDescription}} +struct AccountView: View { + @EnvironmentObject var store: ExplorerStore + @ObservedObject var billing: StoreBilling + var body: some View { + Form { + Section("Account") { + Text(store.wallet.isEmpty ? "Not signed in" : store.wallet).font(.caption).textSelection(.enabled) + Button("Sign in with Dynamic") { do { try store.beginAuth() } catch { store.error = error.localizedDescription } } + Button("Refresh access", action:store.refreshSubscription).disabled(store.wallet.isEmpty || store.busy) + if let subscription = store.subscription?["subscription"] as? [String:Any] { + Text(subscription["isActive"] as? Bool == true ? "Premium access is active" : "No active subscription") + } + } + Section("App Store purchases") { + Text("Sign in to associate purchases with your Explorer account. Prices and payment confirmation are provided by the App Store.") + ForEach(billing.products) { product in + VStack(alignment:.leading, spacing:8) { + Text(product.displayName).font(.headline) + Text(product.description).font(.subheadline) + Button(product.type == .autoRenewable ? "Subscribe — \(product.displayPrice) / month" : "Buy — \(product.displayPrice)") { + Task { await billing.purchase(product) } + }.disabled(billing.loading || store.wallet.isEmpty) + } + } + Button("Reload products") { Task { await billing.load() } }.disabled(billing.loading) + Button("Restore purchases") { Task { await billing.restore() } }.disabled(billing.loading || store.wallet.isEmpty) + Button("Manage Apple subscriptions") { Task { await billing.manage() } } + if !billing.message.isEmpty { Text(billing.message).font(.footnote) } + if billing.loading { ProgressView() } + Text("The monthly subscription renews automatically unless cancelled in your App Store subscription settings. One-time report purchases each provide one report run.").font(.footnote) + Link("Privacy policy", destination:URL(string:"https://github.com/Monadic-DNA/Explorer/blob/main/privacy_policy.md")!) + Link("Terms of use", destination:URL(string:"https://www.apple.com/legal/internet-services/itunes/dev/stdeula/")!) + } + Section("Stablecoin payments") { + Text("Stablecoin payments are available only on Web. They are not available in the iOS app.") + } + Button("Sign out") { do { try store.signOut() } catch { store.error = error.localizedDescription } } } - Text("Provider checkout and wallet authorization use the system browser. Server API keys are never embedded in this application.").font(.custom("SpaceGrotesk-Regular",size:13,relativeTo:.footnote)) - }.vaultScreen().navigationTitle("Account and premium")} + .vaultScreen().navigationTitle("Account and premium") + .task { billing.attach(store); await billing.load(); try? await billing.recover() } + .onChange(of:store.wallet) { _, _ in Task { try? await billing.recover() } } + } } diff --git a/apps/ios/Explorer/ExplorerStore.swift b/apps/ios/Explorer/ExplorerStore.swift index b1de73b..2ae0d61 100644 --- a/apps/ios/Explorer/ExplorerStore.swift +++ b/apps/ios/Explorer/ExplorerStore.swift @@ -34,8 +34,9 @@ import UIKit @Published var shareResultsWithLLM=false private var authSession:ASWebAuthenticationSession? private var task:Task? + let billing = StoreBilling() private(set) var session:Int - override init(){session=(try? Core.call("session_create") as? Int) ?? 0;super.init()} + override init(){session=(try? Core.call("session_create") as? Int) ?? 0;super.init();billing.attach(self);Task { try? await billing.recover() }} var variantCount:Int { metadata["count"] as? Int ?? 0 } func work(_ label:String,_ operation:@escaping @MainActor () async throws -> Void){ guard !busy else{return} @@ -172,24 +173,17 @@ import UIKit }} func signOut() throws {for key in ["auth-token","wallet","pending-auth"]{try DeviceStore.put(key,"")};wallet="";subscription=nil} func refreshSubscription(){work("Refreshing subscription"){guard !self.wallet.isEmpty else{throw Core.Failure(message:"Sign in first")};self.subscription=try await self.api("/api/check-subscription",["walletAddress":self.wallet])}} - func checkout(){work("Opening card checkout"){ - guard !self.wallet.isEmpty else{throw Core.Failure(message:"Sign in first")} - let response=try await self.api("/api/stripe/create-checkout",["walletAddress":self.wallet]) - guard let value=response["url"] as? String,let url=URL(string:value),url.scheme=="https" else{throw Core.Failure(message:"Invalid checkout URL")} - await UIApplication.shared.open(url) - }} - func applyPromo(_ code:String) throws {let response=try Core.object("promo",code);guard response["valid"] as? Bool == true else{throw Core.Failure(message:response["message"] as? String ?? "Invalid promo")};try DeviceStore.put("promo",code);status=response["message"] as? String ?? ""} private func requireAccess(_ kind:String) async throws { - var access=try Core.object("feature_access",["kind":kind,"promo":DeviceStore.get("promo")]) + var access=try Core.object("feature_access",["kind":kind]) if access["allowed"] as? Bool == true{return} - guard !wallet.isEmpty else{throw Core.Failure(message:"Sign in or apply a premium promo code in Account first")} + guard !wallet.isEmpty else{throw Core.Failure(message:"Sign in to your Explorer account first")} subscription=try await api("/api/check-subscription",["walletAddress":wallet]) let active=(subscription?["subscription"] as? [String:Any])?["isActive"] as? Bool ?? false - access=try Core.object("feature_access",["kind":kind,"promo":DeviceStore.get("promo"),"activeSubscription":active]) + access=try Core.object("feature_access",["kind":kind,"activeSubscription":active]) if access["allowed"] as? Bool == true{return} - guard let type=access["reportType"] as? String else{throw Core.Failure(message:"An active subscription or premium promo is required for chat")} + guard let type=access["reportType"] as? String else{throw Core.Failure(message:"An active subscription is required for chat")} let passes=try await api("/api/report-access",["walletAddress":wallet]) - guard ((passes["availableReports"] as? [String:Any])?[type] as? Int ?? 0)>0 else{throw Core.Failure(message:"Subscribe or buy a \(kind) report pass on the website, then try again")} + guard ((passes["availableReports"] as? [String:Any])?[type] as? Int ?? 0)>0 else{throw Core.Failure(message:"Purchase a subscription or report pass in Account, then try again")} _=try await api("/api/report-access",["walletAddress":wallet,"reportType":type,"action":"consume"]) } private func complete(_ messages:[[String:Any]]) async throws -> String { diff --git a/apps/ios/Explorer/StoreBilling.swift b/apps/ios/Explorer/StoreBilling.swift new file mode 100644 index 0000000..8f7db17 --- /dev/null +++ b/apps/ios/Explorer/StoreBilling.swift @@ -0,0 +1,89 @@ +import Foundation +import StoreKit +import UIKit + +@MainActor final class StoreBilling: ObservableObject { + @Published var products: [Product] = [] + @Published var loading = false + @Published var message = "" + private weak var store: ExplorerStore? + private var updates: Task? + private var submitting: Set = [] + private var ids: Set { + Set(((try? Core.array("billing_catalog")) ?? []).compactMap { $0["id"] as? String }) + } + func attach(_ store: ExplorerStore) { + self.store = store + guard updates == nil else { return } + updates = Task { [weak self] in + for await result in Transaction.updates { + guard !Task.isCancelled else { return } + do { try await self?.deliver(result) } + catch { self?.message = "Purchase verification is pending. Sign in to the original Explorer account and restore purchases to retry." } + } + } + } + deinit { updates?.cancel() } + func load() async { + loading = true + defer { loading = false } + do { + products = try await Product.products(for: ids).filter { product in + if product.id == "explorer_premium_monthly" { + return product.type == .autoRenewable && product.subscription?.subscriptionPeriod.unit == .month && product.subscription?.subscriptionPeriod.value == 1 + } + return product.type == .consumable + }.sorted { $0.id < $1.id } + if products.isEmpty { message = "Purchases are not available yet. Please try again later." } + } catch { message = "Unable to connect to the App Store. Please try again." } + } + func purchase(_ product: Product) async { + guard let store, !store.wallet.isEmpty else { message = "Sign in before purchasing."; return } + loading = true; message = "" + defer { loading = false } + do { + let response = try await store.api("/api/mobile-billing/account", ["walletAddress":store.wallet,"store":"apple"]) + guard let id = response["accountId"] as? String, let token = UUID(uuidString:id) else { throw Core.Failure(message:"Unable to prepare purchase") } + switch try await product.purchase(options:[.appAccountToken(token)]) { + case .success(let result): try await deliver(result) + case .pending: message = "Purchase pending approval. Access will appear after approval and verification." + case .userCancelled: message = "Purchase cancelled." + @unknown default: message = "Purchase is not complete." + } + } catch { message = error.localizedDescription } + } + private func deliver(_ result: VerificationResult) async throws { + guard case .verified(let transaction) = result else { throw Core.Failure(message:"The App Store could not verify this purchase") } + guard ids.contains(transaction.productID), !submitting.contains(transaction.id) else { return } + guard let store, !store.wallet.isEmpty else { throw Core.Failure(message:"Sign in to restore this purchase") } + submitting.insert(transaction.id) + defer { submitting.remove(transaction.id) } + let response = try await store.api("/api/mobile-billing/verify", ["walletAddress":store.wallet,"store":"apple","productId":transaction.productID,"proof":String(transaction.id)]) + guard response["accepted"] as? Bool == true else { throw Core.Failure(message:"Purchase verification has not completed") } + // Only finish after the backend durably records the purchase. Unfinished transactions retry on restore/relaunch. + await transaction.finish() + store.refreshSubscription() + message = "Purchase verified. Your account access has been updated." + } + func restore() async { + guard let store, !store.wallet.isEmpty else { message = "Sign in to restore purchases."; return } + loading = true; message = "" + defer { loading = false } + do { + try await AppStore.sync() + try await recover() + store.refreshSubscription() + message = "Purchases restored. Remaining report passes are attached to your Explorer account." + } catch { message = error.localizedDescription } + } + func recover() async throws { + guard let store, !store.wallet.isEmpty else { return } + for await result in Transaction.unfinished { try await deliver(result) } + for await result in Transaction.currentEntitlements { try await deliver(result) } + } + func manage() async { + guard let scene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene else { return } + do { try await AppStore.showManageSubscriptions(in:scene) } + catch { message = "Unable to open subscription management." } + } +} diff --git a/certs/apple/AppleRootCA-G3.cer b/certs/apple/AppleRootCA-G3.cer new file mode 100644 index 0000000000000000000000000000000000000000..228bfa39cbd5acfe53fb9d196e3c1bbbd28649f8 GIT binary patch literal 583 zcmXqLVsbWUVm!HknTe5!i9`43pN>mMy{8&*v2kd%d7QIlVP-Z+HbQ8gAnH8xlJyL^4LCu9Y{E>T!3J{TyoM$QCdLMa7KWAvW>Mn2#+FE2`Z=V` zK!A-M?0+UkHdgIM76v8eBnFllFZFF5ik7^ctW?w}EOS?2>c^vt{R;1hh~4CSx{Ot; zJf%9`&*JiK8JDf~U*)$MCB>e6*%Iw<;4c`(@HZlYXX#gd9ba~L;nG{vr%%r}jCrd) zw_3sa#?FwNaWj`#1#%fKb~11^i`@ju(^Y`3K= md8u*U &[Value] { pub fn dispatch(operation: &str, input: Value) -> Result { match operation { + "billing_catalog" => serde_json::from_str(include_str!("../../../shared/billing-catalog.json")).map_err(|e| e.to_string()), "version" => Ok(json!({"protocol":1,"core":env!("CARGO_PKG_VERSION")})), "parse_genotype" => Ok(genotype::parse( text(&input, "content"), diff --git a/docs/clients.md b/docs/clients.md index 6aa1839..5e3700c 100644 --- a/docs/clients.md +++ b/docs/clients.md @@ -7,7 +7,7 @@ Explorer has three separate UIs backed by one Rust library: - `apps/ios/`: SwiftUI, iOS 17+; Xcode project generated using XcodeGen. - `crates/explorer-core/`: portable client domain logic. -The mobile apps use native navigation, lists, forms, file pickers, and secure storage. They do not embed the web UI. Dynamic sign-in, hosted payment checkout, and connected-wallet transactions use the system browser. Deploy this branch's web backend before using mobile sign-in: `/mobile-auth` is the new encrypted callback bridge. +The mobile apps use native navigation, lists, forms, file pickers, and secure storage. They do not embed the web UI. Dynamic sign-in uses the system browser. Mobile purchases use StoreKit 2 / Play Billing, and stablecoin payments are available only on Web. Deploy this branch's web backend before using mobile sign-in: `/mobile-auth` is the new encrypted callback bridge. ## Shared core and platform boundaries @@ -21,9 +21,9 @@ HTTP transport, provider SDK integration, cancellation, UI state, browser Indexe ## Features -Both native apps provide DNA import, exact/semantic search and trait filtering, study details and publication links, individual matching, Run All, saved-result filtering and TSV import/export, chat, Health/Healthspan/Top traits/Overview reports, optional personalization, provider settings, encrypted local and portable vaults, Dynamic sign-in, subscription refresh, promo entry, and hosted account/payment links. Chat and paid reports use subscription/promo access or consume an existing report pass through the backend. Buy passes and manage wallet payments on the website. +Both native apps provide DNA import, exact/semantic search and trait filtering, study details and publication links, individual matching, Run All, saved-result filtering and TSV import/export, chat, Health/Healthspan/Top traits/Overview reports, optional personalization, provider settings, encrypted local and portable vaults, Dynamic sign-in, subscription refresh, native store purchases, restore and subscription management. Chat and paid reports use verified account entitlements or consume an existing report pass through the backend. Stablecoin payments are available only on Web. -The layout and platform interactions differ from the web app. Mobile report output supports export as Markdown; Android displays the report text directly. Web-specific advertising, attribution, social-account linking, and browser catalog caching are not duplicated as native screens. Payment/account pages remain available in the system browser. Both native report screens expose follow-up questions generated by the shared core. +The layout and platform interactions differ from the web app. Mobile report output supports export as Markdown; Android displays the report text directly. Web-specific advertising, attribution, social-account linking, and browser catalog caching are not duplicated as native screens. Mobile provides no external payment links; Web retains Stripe and wallet checkout. Both native report screens expose follow-up questions generated by the shared core. ## Web development @@ -93,3 +93,7 @@ LLM use requires explicit result-sharing consent. Prompts go directly to the sel The Linux workspace validates Rust, the actual WASM adapter, TypeScript, ESLint, the Next.js production build, Android compilation, Android lint, and Kotlin/JNA calls into the real Rust library. CI also defines Android emulator navigation and macOS XCTest jobs. Device sign-in, real provider calls, purchases, signing, and store distribution require configured services and device testing; automated tests do not charge cards or submit personal DNA to providers. The full public 23andMe regression procedure, provenance, reference calculations, parser limitations, and platform validation results are recorded in [public sample validation](public-sample-validation.md). + +## Mobile payments + +Mobile uses StoreKit 2 and Google Play Billing, with verified account entitlements shared across clients. Stablecoin payments are available only on Web. See [mobile billing setup and validation](mobile-billing.md) for product IDs, required server credentials, migration, notifications and store testing. The earlier browser-based native checkout has been removed. diff --git a/docs/mobile-billing.md b/docs/mobile-billing.md new file mode 100644 index 0000000..0332847 --- /dev/null +++ b/docs/mobile-billing.md @@ -0,0 +1,66 @@ +# Apple and Google Play billing + +Explorer mobile uses StoreKit 2 (iOS 17+) and Google Play Billing 8 (Android). Stripe/card and stablecoin checkout remain on Web. The mobile account screens say **“Stablecoin payments are available only on Web”**, and provide no external payment link. The store subscription-management actions open Apple's subscription sheet or Google's subscription management page. + +## Products to create + +Both stores use the IDs in `shared/billing-catalog.json`; native clients read the same catalog through `explorer-core`. + +| Product ID | Store type | Entitlement | +| --- | --- | --- | +| `explorer_premium_monthly` | Auto-renewable monthly subscription | Premium reports and DNA chat while active | +| `explorer_report_overview` | Consumable / consumable one-time product | One Overview report run | +| `explorer_report_healthspan` | Consumable / consumable one-time product | One Healthspan report run | +| `explorer_report_top_traits` | Consumable / consumable one-time product | One Top traits report run | + +Create these for bundle/package **`com.monadicdna.explorer`**. Set the subscription period to one month. On Play, create one active monthly auto-renewing base plan without an introductory offer; the client selects its base-plan offer. Disable multi-quantity purchases for report products. Set store prices and localized product descriptions in each console: prices displayed in mobile come from the store, not Web's USD price constants. Complete agreements, tax/banking details, availability, app signing and the store's required subscription disclosures/review information. Generic Web promo-code unlocking is not exposed in mobile; promotions should use store-managed offers. + +## Backend configuration + +Apply `POSTGRES_DB=… npm run billing:migrate` to the intended database before enabling billing. The migration adds only account/purchase metadata tables; no DNA is uploaded. Remote database TLS certificates must validate; supply `DATABASE_CA_CERT` for a private project CA. + +Configure these **server-only** variables through the deployment's secret manager; never embed them in mobile or commit private keys: + +- `MOBILE_BILLING_ENABLED=true` after configuration and migration. +- `MOBILE_BILLING_TOKEN_KEY`: base64 of 32 cryptographically random bytes. This AES-GCM key encrypts purchase proofs in the database, authenticated to the account ID. Keep it backed up securely; rotating it requires re-encrypting existing proofs. +- `APPLE_IAP_ISSUER_ID`, `APPLE_IAP_KEY_ID`, `APPLE_IAP_PRIVATE_KEY`: App Store Connect In-App Purchase API credentials (PEM `.p8` key; literal `\n` or actual newlines accepted). +- `APPLE_APP_ID`: Apple's numeric application ID, required in production. +- `APPLE_STORE_ENVIRONMENT`: `Production` (default) or explicitly `Sandbox` for an isolated test deployment. Local Xcode StoreKit configuration transactions are not accepted by the production/Sandbox server verifier. +- `GOOGLE_PLAY_SERVICE_ACCOUNT_JSON`: Android Publisher service-account credential JSON, granted the required purchase/subscription permissions in Play Console for this package. +- `GOOGLE_PLAY_ALLOW_TEST_PURCHASES=true` **only** on an isolated test deployment/database. Production rejects Play test purchases by default. +- `GOOGLE_RTDN_AUDIENCE`: exact audience configured for the authenticated Pub/Sub push subscription, normally the Google notification endpoint URL. +- `GOOGLE_RTDN_SERVICE_ACCOUNT_EMAIL`: exact Google service-account email authorized to send that Pub/Sub push. + +Without configuration, buying fails before the native purchase sheet opens. No fallback to external checkout is offered. Store verification and payment-status failures do not grant access. Keep sandbox and production databases, token-encryption keys and webhook configuration separate; never enable test receipts in production. + +## Ownership, verification and recovery + +A signed-in user proves wallet ownership using the existing verified Dynamic JWT. `/api/mobile-billing/account` returns a stable random account UUID, used as StoreKit's `appAccountToken` and Play's obfuscated account ID. Receipts cannot be claimed for a different Explorer account, even if their transaction ID/token is copied. + +`/api/mobile-billing/verify` fetches purchase state from Apple's authenticated Server API or Google's Android Publisher API. Apple signed payloads are verified with the official App Store Server Library and Apple's public G3 root, with revocation checks enabled. Verification checks the environment, bundle/package, allowlisted product, product type and account binding. Google pending/on-hold/paused/refunded purchases do not grant access. Cancelled subscriptions retain access until their verified paid expiry; configured store grace periods remain supported. + +The backend durably upserts a unique store/purchase record before acknowledging/consuming a Play purchase. StoreKit finishes only after that server confirmation. Retries cannot add credits twice. Finished consumable purchases are restored through the Explorer account ledger, rather than relying on StoreKit/Play to return consumed purchases. Spending a mobile report credit uses a PostgreSQL row lock and atomic update, so two devices cannot spend one credit twice. + +The existing `/api/check-subscription` and `/api/report-access` endpoints include verified store entitlements for authenticated account requests on Web and mobile. Stripe and blockchain access checks remain available. Access checks revalidate current store state; no premium grant is based solely on client flags or a cached receipt. An unavailable store verification fails closed. Old tokens that the store definitively stops serving are retired; network failures do not retire or grant purchases. + +## Store notifications + +Configure App Store Server Notifications V2 (including the Sandbox URL on the isolated test deployment) to: + +`https:///api/mobile-billing/apple-notifications` + +The endpoint verifies Apple's signed notification and its signed transaction, then fetches current subscription/purchase state again. Refunds, revocations and renewals update the existing ledger entry. + +Configure Play Real-time Developer Notifications to a Pub/Sub topic. Give Google's documented Play notification publisher permission to publish to that topic. Create an **authenticated** push subscription targeting: + +`https:///api/mobile-billing/google-notifications` + +Set its OIDC service account and audience to the variables above, and grant the Pub/Sub service agent the required token-creation permission. The endpoint verifies the Google-signed identity token, exact audience, verified email, package and purchase/account binding. Subscription, one-time-product and voided-purchase notifications fetch current store state before updating the ledger. One-time products are consumed and subscriptions acknowledged only after durable recording, including approvals while the app is closed. Notifications and client retries are idempotent. A transient failure returns an error so store/Pub/Sub retries can recover. + +## Validation before release + +Run `npm run test:billing`. For the database concurrency tests, use an explicitly selected local test database, run the migration, and set `BILLING_DB_TEST=true`. CI creates a disposable PostgreSQL service and runs these tests, plus the existing Web/Rust/native checks. + +Automated tests cover invalid/forged Apple assertions, cross-account/SKU/environment mismatches, production rejection of test purchases, pending/refunded/expired states, cancelled subscription expiry, encrypted proof storage, replay and concurrent report consumption. + +**Store setup is not yet completed.** Live Sandbox/Play purchase flows require the console products and credentials above. Before submission, install a signed build through Apple's Sandbox/TestFlight and Play's internal testing track and verify actual purchase, cancellation, Ask to Buy/pending approval, restore on a second device, renewal, refund/revocation, report consumption and notification redelivery. Confirm subscription disclosures and product types against the final store listings. No real payment or store purchase is made by the repository tests. diff --git a/lib/db.ts b/lib/db.ts index 19cb955..a1a7709 100644 --- a/lib/db.ts +++ b/lib/db.ts @@ -5,55 +5,13 @@ import path from "path"; let pgPool: Pool | null = null; function getSSLConfig(connectionString: string) { - // Local connections don't need SSL - if (connectionString.includes('localhost') || connectionString.includes('127.0.0.1')) { - return false; - } - - // SECURITY LIMITATION: DigitalOcean uses self-signed project CAs - // Node.js TLS rejects these even when the CA cert is provided explicitly - // See: https://www.digitalocean.com/community/questions/postgresql-on-app-platform-self-signed-certificate-in-certificate-chain-issue - // - // We provide the CA cert to validate against the specific DigitalOcean server, - // but must set rejectUnauthorized: false to accept the self-signed CA. - // - // This is MORE SECURE than the original code because: - // 1. We don't set NODE_TLS_REJECT_UNAUTHORIZED='0' (which affects ALL HTTPS globally) - // 2. We still verify against the specific CA cert (prevents completely random MITM) - // 3. The SSL config is scoped to just this Pool connection - // - // RESIDUAL RISK: An attacker with the DigitalOcean CA private key could MITM the DB connection - - // DigitalOcean automatically injects DATABASE_CA_CERT when deployed to App Platform - if (process.env.DATABASE_CA_CERT) { - return { - ca: process.env.DATABASE_CA_CERT, - rejectUnauthorized: false, // Required for self-signed CAs - }; - } - - // Fallback: Check if CA certificate file exists (for local development) + const hostname = new URL(connectionString).hostname; + if (['localhost','127.0.0.1','[::1]'].includes(hostname)) return false; + // Managed database connections must validate the server certificate, including custom project CAs. + if (process.env.DATABASE_CA_CERT) return { ca:process.env.DATABASE_CA_CERT, rejectUnauthorized:true }; const caCertPath = path.join(process.cwd(), 'certs', 'ca-certificate.crt'); - if (fs.existsSync(caCertPath)) { - return { - ca: fs.readFileSync(caCertPath).toString(), - rejectUnauthorized: false, // Required for self-signed CAs - }; - } - - // For DigitalOcean without CA cert - if (connectionString.includes('digitalocean.com') || connectionString.includes('.db.ondigitalocean.com') || connectionString.includes('ondigitalocean.com')) { - console.warn('DigitalOcean connection detected but no CA cert found.'); - console.warn('Set DATABASE_CA_CERT environment variable or add ca-certificate.crt to certs/ directory.'); - return { - rejectUnauthorized: false, - }; - } - - // Default: use system CAs with full validation - return { - rejectUnauthorized: true, - }; + if (fs.existsSync(caCertPath)) return { ca:fs.readFileSync(caCertPath).toString(), rejectUnauthorized:true }; + return { rejectUnauthorized:true }; } export function getDb(): Pool { diff --git a/lib/store-billing/catalog.ts b/lib/store-billing/catalog.ts new file mode 100644 index 0000000..4dd9039 --- /dev/null +++ b/lib/store-billing/catalog.ts @@ -0,0 +1,30 @@ +import products from '../../shared/billing-catalog.json'; +import type { PaidReportType } from '../report-access'; + +export type Store = 'apple' | 'google'; +export type Product = { id: string; kind: 'subscription' | 'consumable'; reportType?: PaidReportType; title: string; description: string }; +export const catalog = products as Product[]; +export function productFor(id: string): Product { + const product = catalog.find(item => item.id === id); + if (!product) throw new BillingError('Unknown store product', 400); + return product; +} +export class BillingError extends Error { + constructor(message: string, public status = 400) { super(message); } +} +export interface VerifiedPurchase { + store: Store; + purchaseId: string; + accountId: string; + productId: string; + kind: Product['kind']; + reportType?: PaidReportType; + validUntil: Date | null; + revoked: boolean; + proof: string; +} +export function required(name: string): string { + const value = process.env[name]; + if (!value) throw new BillingError('Store billing is not configured', 503); + return value; +} diff --git a/lib/store-billing/http.ts b/lib/store-billing/http.ts new file mode 100644 index 0000000..42472ad --- /dev/null +++ b/lib/store-billing/http.ts @@ -0,0 +1,15 @@ +import { NextResponse } from 'next/server'; +import { verifyWalletAuth } from '../dynamic-auth'; +import { BillingError } from './catalog'; +import { mobileBillingEnabled } from './ledger'; +export async function authenticatedBillingWallet(request: Request, wallet: unknown) { + if (!mobileBillingEnabled()) throw new BillingError('Store billing is not configured', 503); + if (typeof wallet !== 'string' || !/^0x[0-9a-fA-F]{40}$/.test(wallet)) throw new BillingError('Invalid account',400); + const auth = await verifyWalletAuth(request.headers.get('authorization'),wallet); + if (!auth.ok) throw new BillingError(auth.error || 'Authentication required',auth.status || 401); + return wallet.toLowerCase(); +} +export function billingFailure(error: unknown) { + const safe = error instanceof BillingError ? error : new BillingError('Store billing is unavailable. Please try again.',503); + return NextResponse.json({ error:safe.message },{ status:safe.status, headers:{'Cache-Control':'no-store'} }); +} diff --git a/lib/store-billing/ledger.ts b/lib/store-billing/ledger.ts new file mode 100644 index 0000000..0e2533b --- /dev/null +++ b/lib/store-billing/ledger.ts @@ -0,0 +1,74 @@ +import { createCipheriv, createDecipheriv, randomBytes, randomUUID } from 'node:crypto'; +import { getDb } from '../db'; +import { BillingError, required, type Store, type VerifiedPurchase } from './catalog'; +import { verifyStorePurchase } from './verification'; +import { PAID_REPORT_TYPES, type PaidReportType } from '../report-access'; + +export function mobileBillingEnabled() { return process.env.MOBILE_BILLING_ENABLED === 'true'; } +export function tokenKey() { + const key = Buffer.from(required('MOBILE_BILLING_TOKEN_KEY'), 'base64'); + if (key.length !== 32) throw new BillingError('Invalid billing storage configuration', 503); + return key; +} +function encrypt(proof: string, accountId: string) { + const iv = randomBytes(12), cipher = createCipheriv('aes-256-gcm', tokenKey(), iv); + cipher.setAAD(Buffer.from(accountId)); + const ciphertext = Buffer.concat([cipher.update(proof, 'utf8'), cipher.final()]); + return Buffer.concat([iv, cipher.getAuthTag(), ciphertext]).toString('base64'); +} +function decrypt(proof: string, accountId: string) { + const bytes = Buffer.from(proof, 'base64'), cipher = createDecipheriv('aes-256-gcm', tokenKey(), bytes.subarray(0,12)); + cipher.setAAD(Buffer.from(accountId)); cipher.setAuthTag(bytes.subarray(12,28)); + return Buffer.concat([cipher.update(bytes.subarray(28)), cipher.final()]).toString('utf8'); +} +export async function billingAccount(wallet: string): Promise { + const result = await getDb().query<{id:string}>(`INSERT INTO mobile_billing_accounts(id,wallet) VALUES($1,$2) + ON CONFLICT(wallet) DO UPDATE SET wallet=EXCLUDED.wallet RETURNING id`, [randomUUID(), wallet.toLowerCase()]); + return result.rows[0].id; +} +export async function recordPurchase(purchase: VerifiedPurchase) { + const result = await getDb().query(`INSERT INTO mobile_store_purchases(store,purchase_id,account_id,product_id,kind,report_type,proof,valid_until,revoked) + VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9) + ON CONFLICT(store,purchase_id) DO UPDATE SET product_id=EXCLUDED.product_id, proof=EXCLUDED.proof, + valid_until=EXCLUDED.valid_until, revoked=EXCLUDED.revoked, verified_at=now() + WHERE mobile_store_purchases.account_id=EXCLUDED.account_id AND mobile_store_purchases.kind=EXCLUDED.kind + RETURNING purchase_id`, [purchase.store,purchase.purchaseId,purchase.accountId,purchase.productId,purchase.kind,purchase.reportType ?? null,encrypt(purchase.proof,purchase.accountId),purchase.validUntil,purchase.revoked]); + if (!result.rowCount) throw new BillingError('Purchase is already bound to another account', 409); +} +interface Row { store: Store; purchase_id: string; account_id: string; product_id: string; proof: string } +export async function refreshPurchases(wallet: string) { + const result = await getDb().query(`SELECT p.* FROM mobile_store_purchases p JOIN mobile_billing_accounts a ON a.id=p.account_id + WHERE a.wallet=$1 AND ((p.kind='subscription' AND (NOT p.revoked OR p.valid_until IS NOT NULL)) OR (p.kind='consumable' AND p.consumed_at IS NULL AND NOT p.revoked))`, [wallet.toLowerCase()]); + // Every access rechecks current store state. No entitlement is based on a client flag or stale receipt expiry. + for (const row of result.rows) { + try { await recordPurchase(await verifyStorePurchase(row.store,decrypt(row.proof,row.account_id),row.product_id,row.account_id)); } + catch (error) { + if (!(error instanceof BillingError) || error.status !== 410) throw error; + // Stores stop serving old purchase tokens. Retire only a definitive 404/410; network failures never become grants. + await getDb().query('UPDATE mobile_store_purchases SET revoked=true,valid_until=NULL,verified_at=now() WHERE store=$1 AND purchase_id=$2',[row.store,row.purchase_id]); + } + } +} +export async function mobileEntitlements(wallet: string, refresh = true) { + const availableReports = Object.fromEntries(PAID_REPORT_TYPES.map(type => [type,0])) as Record; + if (!mobileBillingEnabled()) return { isActive:false, expiresAt:null as Date | null, availableReports }; + if (refresh) await refreshPurchases(wallet); + const result = await getDb().query<{kind:string;report_type:PaidReportType;valid_until:Date|null}>(`SELECT kind,report_type,valid_until FROM mobile_store_purchases p + JOIN mobile_billing_accounts a ON a.id=p.account_id WHERE a.wallet=$1 AND NOT revoked + AND ((kind='subscription' AND valid_until>now()) OR (kind='consumable' AND consumed_at IS NULL))`, [wallet.toLowerCase()]); + let expiresAt: Date | null = null; + for (const row of result.rows) { + if (row.kind === 'consumable') availableReports[row.report_type]++; + else if (row.valid_until && (!expiresAt || row.valid_until > expiresAt)) expiresAt = row.valid_until; + } + return { isActive:expiresAt !== null, expiresAt, availableReports }; +} +export async function consumeMobileReport(wallet: string, reportType: PaidReportType): Promise { + if (!mobileBillingEnabled()) return false; + // Caller must have refreshed purchases and authenticated the wallet before entering this function. + const result = await getDb().query(`UPDATE mobile_store_purchases SET consumed_at=now() WHERE (store,purchase_id)=( + SELECT p.store,p.purchase_id FROM mobile_store_purchases p JOIN mobile_billing_accounts a ON a.id=p.account_id + WHERE a.wallet=$1 AND p.kind='consumable' AND p.report_type=$2 AND NOT p.revoked AND p.consumed_at IS NULL + ORDER BY p.created_at FOR UPDATE OF p SKIP LOCKED LIMIT 1) RETURNING purchase_id`, [wallet.toLowerCase(),reportType]); + return !!result.rowCount; +} diff --git a/lib/store-billing/verification.ts b/lib/store-billing/verification.ts new file mode 100644 index 0000000..fcb9cb5 --- /dev/null +++ b/lib/store-billing/verification.ts @@ -0,0 +1,123 @@ +import { readFileSync } from 'node:fs'; +import { createHash, createPrivateKey } from 'node:crypto'; +import path from 'node:path'; +import { AppStoreServerAPIClient, Environment, SignedDataVerifier, type JWSTransactionDecodedPayload } from '@apple/app-store-server-library'; +import { GoogleAuth } from 'google-auth-library'; +import { BillingError, productFor, required, type Store, type VerifiedPurchase } from './catalog'; + +const bundleId = 'com.monadicdna.explorer'; +export function appleServices() { + const environment = process.env.APPLE_STORE_ENVIRONMENT === 'Sandbox' ? Environment.SANDBOX : Environment.PRODUCTION; + const appId = environment === Environment.PRODUCTION ? Number(required('APPLE_APP_ID')) : undefined; + if (appId !== undefined && (!Number.isSafeInteger(appId) || appId <= 0)) throw new BillingError('Invalid Apple app configuration', 503); + const verifier = new SignedDataVerifier([readFileSync(path.join(process.cwd(), 'certs/apple/AppleRootCA-G3.cer'))], true, environment, bundleId, appId); + const client = new AppStoreServerAPIClient(required('APPLE_IAP_PRIVATE_KEY').replace(/\\n/g, '\n'), required('APPLE_IAP_KEY_ID'), required('APPLE_IAP_ISSUER_ID'), bundleId, environment); + return { verifier, client, environment }; +} + +export function normalizeApple(tx: JWSTransactionDecodedPayload, accountId: string, proof: string, environment: string): VerifiedPurchase { + const product = productFor(tx.productId || ''); + if (tx.bundleId !== bundleId || tx.environment !== environment || tx.appAccountToken?.toLowerCase() !== accountId.toLowerCase()) throw new BillingError('Purchase does not belong to this app/account', 403); + if (!tx.transactionId || !tx.originalTransactionId || tx.quantity !== 1) throw new BillingError('Invalid purchase'); + const type = product.kind === 'subscription' ? 'Auto-Renewable Subscription' : 'Consumable'; + if (tx.type !== type) throw new BillingError('Incorrect store product type'); + const expiry = product.kind === 'subscription' ? new Date(tx.expiresDate || 0) : null; + if (expiry && !Number.isFinite(expiry.getTime())) throw new BillingError('Invalid expiry'); + return { store:'apple', purchaseId:product.kind === 'subscription' ? tx.originalTransactionId : tx.transactionId, accountId, productId:product.id, kind:product.kind, reportType:product.reportType, validUntil:expiry, revoked:tx.revocationDate !== undefined, proof }; +} + +async function verifyApple(proof: string, productId: string, accountId: string) { + if (!/^\d{1,30}$/.test(proof)) throw new BillingError('Invalid Apple transaction ID'); + const { client, verifier, environment } = appleServices(); + const response = await client.getTransactionInfo(proof); + const tx = await verifier.verifyAndDecodeTransaction(response.signedTransactionInfo || ''); + if (tx.transactionId !== proof || tx.productId !== productId) throw new BillingError('Transaction/product mismatch'); + let purchase = normalizeApple(tx, accountId, proof, environment); + if (purchase.kind === 'subscription') { + const status = await client.getAllSubscriptionStatuses(proof); + const latest = status.data?.flatMap(group => group.lastTransactions || []).find(item => item.originalTransactionId === tx.originalTransactionId); + if (!latest?.signedTransactionInfo) throw new BillingError('Subscription status unavailable', 503); + const current = await verifier.verifyAndDecodeTransaction(latest.signedTransactionInfo); + purchase = normalizeApple(current, accountId, current.transactionId || proof, environment); + if (latest.status === 4 && latest.signedRenewalInfo) { + const renewal = await verifier.verifyAndDecodeRenewalInfo(latest.signedRenewalInfo); + if (renewal.originalTransactionId !== current.originalTransactionId) throw new BillingError('Subscription renewal mismatch'); + purchase.validUntil = new Date(renewal.gracePeriodExpiresDate || 0); + } + purchase.revoked ||= latest.status !== 1 && latest.status !== 4; + } + return purchase; +} + +// Minimal typed Play API responses; all entitlement fields below come from Google's authenticated API. +export interface PlayPurchase { + purchaseState?: number; quantity?: number; obfuscatedExternalAccountId?: string; + testPurchase?: unknown; purchaseType?: number; subscriptionState?: string; + acknowledgementState?: number | string; consumptionState?: number; + externalAccountIdentifiers?: { obfuscatedExternalAccountId?: string }; + lineItems?: { productId?: string; expiryTime?: string }[]; +} +export function normalizeGoogle(data: PlayPurchase, productId: string, accountId: string, proof: string, sandbox = false): VerifiedPurchase { + const product = productFor(productId); + const boundAccount = product.kind === 'subscription' ? data.externalAccountIdentifiers?.obfuscatedExternalAccountId : data.obfuscatedExternalAccountId; + if (boundAccount !== accountId) throw new BillingError('Purchase does not belong to this account', 403); + if (!sandbox && (data.testPurchase !== undefined || data.purchaseType === 0)) throw new BillingError('Test purchases are disabled', 403); + const activeStates = ['SUBSCRIPTION_STATE_ACTIVE', 'SUBSCRIPTION_STATE_IN_GRACE_PERIOD', 'SUBSCRIPTION_STATE_CANCELED']; + let validUntil: Date | null = null; + let revoked = data.purchaseState !== 0; + if (product.kind === 'subscription') { + const line = data.lineItems?.filter(item => item.productId === productId).sort((a,b) => Date.parse(b.expiryTime || '') - Date.parse(a.expiryTime || ''))[0]; + if (!line) throw new BillingError('Subscription/product mismatch'); + validUntil = new Date(line.expiryTime || ''); + if (!Number.isFinite(validUntil.getTime())) throw new BillingError('Invalid subscription expiry'); + revoked = !activeStates.includes(data.subscriptionState || ''); + } else if ((data.quantity ?? 1) !== 1) throw new BillingError('Multi-quantity purchases are not supported'); + return { store:'google', purchaseId:createHash('sha256').update(proof).digest('hex'), accountId, productId, kind:product.kind, reportType:product.reportType, validUntil, revoked, proof }; +} +async function googleClient() { + const credentials = JSON.parse(required('GOOGLE_PLAY_SERVICE_ACCOUNT_JSON')); + return new GoogleAuth({ credentials, scopes:['https://www.googleapis.com/auth/androidpublisher'] }).getClient(); +} +export async function readGooglePurchase(proof: string, productId?: string): Promise { + if (!proof || proof.length > 8192) throw new BillingError('Invalid purchase proof'); + const client = await googleClient(); + const base = `https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${bundleId}/purchases`; + const suffix = productId ? `/products/${encodeURIComponent(productId)}/tokens/${encodeURIComponent(proof)}` : `/subscriptionsv2/tokens/${encodeURIComponent(proof)}`; + if (productId) productFor(productId); + return (await client.request({ url:base+suffix, timeout:15000 })).data; +} +export async function completeGooglePurchase(purchase: VerifiedPurchase) { + if (purchase.revoked || (purchase.validUntil && purchase.validUntil.getTime() <= Date.now())) return; + const data = await readGooglePurchase(purchase.proof, purchase.kind === 'consumable' ? purchase.productId : undefined); + const action = purchase.kind === 'consumable' ? 'consume' : 'acknowledge'; + if ((action === 'consume' && data.consumptionState === 1) || (action === 'acknowledge' && data.acknowledgementState === 'ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED')) return; + const client = await googleClient(); + const kind = purchase.kind === 'consumable' ? 'products' : 'subscriptions'; + await client.request({ method:'POST', url:`https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${bundleId}/purchases/${kind}/${encodeURIComponent(purchase.productId)}/tokens/${encodeURIComponent(purchase.proof)}:${action}`, data:{}, timeout:15000 }); +} +async function verifyGoogle(proof: string, productId: string, accountId: string) { + const product = productFor(productId); + const data = await readGooglePurchase(proof,product.kind === 'consumable' ? productId : undefined); + return normalizeGoogle(data, productId, accountId, proof, process.env.GOOGLE_PLAY_ALLOW_TEST_PURCHASES === 'true'); +} +export async function verifyStorePurchase(store: Store, proof: string, productId: string, accountId: string): Promise { + productFor(productId); + if (!proof || proof.length > 8192) throw new BillingError('Invalid purchase proof'); + try { return store === 'apple' ? await verifyApple(proof, productId, accountId) : await verifyGoogle(proof, productId, accountId); } + catch (error) { + if (error instanceof BillingError) throw error; + const upstream = error as { httpStatusCode?: number; response?: { status?: number } }; + if ([404,410].includes(upstream.httpStatusCode || upstream.response?.status || 0)) throw new BillingError('Purchase is no longer available',410); + // Never expose upstream error bodies: Google errors can contain purchase tokens. + throw new BillingError('Store verification is unavailable. Retry or restore purchases; access has not been granted.', 503); + } +} + +export function assertStoreConfigured(store: Store) { + if (store === 'apple') { appleServices(); createPrivateKey(required('APPLE_IAP_PRIVATE_KEY').replace(/\\n/g, '\n')); } + else { + const credentials = JSON.parse(required('GOOGLE_PLAY_SERVICE_ACCOUNT_JSON')); + if (!credentials.client_email || !credentials.private_key) throw new BillingError('Play billing is not configured',503); + createPrivateKey(credentials.private_key); + } +} diff --git a/migrations/001-mobile-billing.sql b/migrations/001-mobile-billing.sql new file mode 100644 index 0000000..7034999 --- /dev/null +++ b/migrations/001-mobile-billing.sql @@ -0,0 +1,25 @@ +-- Apply to POSTGRES_DB before enabling mobile billing. Contains purchase/account metadata only. +BEGIN; +CREATE TABLE IF NOT EXISTS mobile_billing_accounts ( + id uuid PRIMARY KEY, + wallet text NOT NULL UNIQUE CHECK (wallet ~ '^0x[0-9a-f]{40}$'), + created_at timestamptz NOT NULL DEFAULT now() +); +CREATE TABLE IF NOT EXISTS mobile_store_purchases ( + store text NOT NULL CHECK (store IN ('apple', 'google')), + purchase_id text NOT NULL, + account_id uuid NOT NULL REFERENCES mobile_billing_accounts(id), + product_id text NOT NULL, + kind text NOT NULL CHECK (kind IN ('subscription', 'consumable')), + report_type text CHECK (report_type IN ('overview','healthspan','top_traits')), + proof text NOT NULL, -- AEAD-encrypted transaction ID / purchase token, never logged. + valid_until timestamptz, + revoked boolean NOT NULL DEFAULT false, + consumed_at timestamptz, + verified_at timestamptz NOT NULL DEFAULT now(), + created_at timestamptz NOT NULL DEFAULT now(), + PRIMARY KEY (store, purchase_id), + CHECK ((kind = 'subscription' AND report_type IS NULL) OR (kind = 'consumable' AND report_type IS NOT NULL)) +); +CREATE INDEX IF NOT EXISTS mobile_store_account_idx ON mobile_store_purchases(account_id); +COMMIT; diff --git a/next.config.mjs b/next.config.mjs index 339f6aa..c09fdac 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -9,6 +9,7 @@ const libsodiumCommonJs = /** @type {import('next').NextConfig} */ const nextConfig = { + outputFileTracingIncludes: { "/api/**": ["./certs/apple/*.cer"] }, compress: true, // Enable gzip compression for API responses typescript: { ignoreBuildErrors: false, // Keep type checking diff --git a/package-lock.json b/package-lock.json index 4b8879a..7225cc3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { + "@apple/app-store-server-library": "^3.1.0", "@dynamic-labs/ethereum": "^5.9.4", "@dynamic-labs/sdk-react-core": "^5.9.4", "@huggingface/transformers": "^4.3.0", @@ -22,6 +23,7 @@ "crypto-browserify": "^3.12.1", "crypto-js": "^4.2.0", "ethers": "^6.13.4", + "google-auth-library": "^11.3.1", "jose": "^6.2.3", "next": "^16.2.10", "openai": "^7.28.0", @@ -46,6 +48,7 @@ "eslint": "^9.39.5", "eslint-config-next": "^16.2.10", "playwright": "^1.64.1", + "tsx": "^4.23.15", "typescript": "^5.9.3" }, "engines": { @@ -95,6 +98,31 @@ "integrity": "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==", "license": "MIT" }, + "node_modules/@apple/app-store-server-library": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@apple/app-store-server-library/-/app-store-server-library-3.1.0.tgz", + "integrity": "sha512-d26SICRz8BwCV2qPR0BSXBMxmw0NEvJLwsdREcBmCrus8NmyHw2XgOOP0fiFjcctPn/JXtmSDuGVnaHe+dqO+A==", + "license": "MIT", + "dependencies": { + "@types/jsonwebtoken": "^9.0.5", + "@types/jsrsasign": "^10.5.12", + "@types/node": "^25.4.0", + "@types/node-fetch": "^2.6.13", + "base64url": "^3.0.1", + "jsonwebtoken": "^9.0.2", + "jsrsasign": "^11.0.0", + "node-fetch": "^2.7.0" + } + }, + "node_modules/@apple/app-store-server-library/node_modules/@types/node": { + "version": "25.9.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.9.tgz", + "integrity": "sha512-b4e2xxj/yMeT2hNlD6x7zNFiQK2Dlmkb9CQ6v3/1G2RezKN4YS2lcEv8lzGm1mhs4f2lM4yNAMI/zUDBZBBt7w==", + "license": "MIT", + "dependencies": { + "undici-types": ">=7.24.0 <7.24.7" + } + }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -1071,9 +1099,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1090,9 +1115,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1109,9 +1131,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1128,9 +1147,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1147,9 +1163,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1166,9 +1179,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1185,9 +1195,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1204,9 +1211,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -1223,9 +1227,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1248,9 +1249,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1273,9 +1271,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1298,9 +1293,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1323,9 +1315,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1348,9 +1337,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1373,9 +1359,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -1398,9 +1381,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2395,9 +2375,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2415,9 +2392,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2435,9 +2409,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2455,9 +2426,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2475,9 +2443,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2495,9 +2460,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2515,9 +2477,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2535,9 +2494,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2555,9 +2511,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2581,9 +2534,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2607,9 +2557,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2633,9 +2580,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2659,9 +2603,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2685,9 +2626,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2711,9 +2649,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2737,9 +2672,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2928,19 +2860,461 @@ "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", "license": "MIT", "optional": true, - "dependencies": { - "tslib": "^2.4.0" + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", + "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", + "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", + "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", + "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", + "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", + "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", + "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", + "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", + "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", + "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", + "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", + "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", + "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", + "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", + "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", + "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", + "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", + "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", + "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", + "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", + "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", + "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", + "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", + "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", + "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "node_modules/@esbuild/win32-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", + "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "dependencies": { - "tslib": "^2.4.0" + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -4185,9 +4559,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -4204,9 +4575,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -4223,9 +4591,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -4242,9 +4607,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -4261,9 +4623,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -4280,9 +4639,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -4299,9 +4655,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -4318,9 +4671,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -4337,9 +4687,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -4362,9 +4709,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -4387,9 +4731,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -4412,9 +4753,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -4437,9 +4775,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -4462,9 +4797,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -4487,9 +4819,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -4512,9 +4841,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -5175,9 +5501,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5194,9 +5517,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5213,9 +5533,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5232,9 +5549,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -7119,6 +7433,22 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz", + "integrity": "sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==", + "license": "MIT", + "dependencies": { + "@types/ms": "*", + "@types/node": "*" + } + }, + "node_modules/@types/jsrsasign": { + "version": "10.5.15", + "resolved": "https://registry.npmjs.org/@types/jsrsasign/-/jsrsasign-10.5.15.tgz", + "integrity": "sha512-3stUTaSRtN09PPzVWR6aySD9gNnuymz+WviNHoTb85dKu+BjaV4uBbWWGykBBJkfwPtcNZVfTn2lbX00U+yhpQ==", + "license": "MIT" + }, "node_modules/@types/keyv": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", @@ -7158,6 +7488,16 @@ "undici-types": ">=7.24.0 <7.24.7" } }, + "node_modules/@types/node-fetch": { + "version": "2.6.13", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz", + "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.4" + } + }, "node_modules/@types/pako": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", @@ -7403,9 +7743,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -7420,9 +7757,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -7437,9 +7771,6 @@ "loong64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -7454,9 +7785,6 @@ "loong64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -7471,9 +7799,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -7488,9 +7813,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -7505,9 +7827,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -7522,9 +7841,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -7539,9 +7855,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -7556,9 +7869,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -8883,6 +9193,15 @@ ], "license": "MIT" }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/baseline-browser-mapping": { "version": "2.11.27", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.27.tgz", @@ -9178,6 +9497,12 @@ "ieee754": "^1.2.1" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -9703,6 +10028,15 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -10033,6 +10367,15 @@ "node": ">= 0.4" } }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/eciesjs": { "version": "0.4.17", "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.17.tgz", @@ -10413,6 +10756,48 @@ "node": ">=0.12" } }, + "node_modules/esbuild": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", + "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.2", + "@esbuild/android-arm": "0.28.2", + "@esbuild/android-arm64": "0.28.2", + "@esbuild/android-x64": "0.28.2", + "@esbuild/darwin-arm64": "0.28.2", + "@esbuild/darwin-x64": "0.28.2", + "@esbuild/freebsd-arm64": "0.28.2", + "@esbuild/freebsd-x64": "0.28.2", + "@esbuild/linux-arm": "0.28.2", + "@esbuild/linux-arm64": "0.28.2", + "@esbuild/linux-ia32": "0.28.2", + "@esbuild/linux-loong64": "0.28.2", + "@esbuild/linux-mips64el": "0.28.2", + "@esbuild/linux-ppc64": "0.28.2", + "@esbuild/linux-riscv64": "0.28.2", + "@esbuild/linux-s390x": "0.28.2", + "@esbuild/linux-x64": "0.28.2", + "@esbuild/netbsd-arm64": "0.28.2", + "@esbuild/netbsd-x64": "0.28.2", + "@esbuild/openbsd-arm64": "0.28.2", + "@esbuild/openbsd-x64": "0.28.2", + "@esbuild/openharmony-arm64": "0.28.2", + "@esbuild/sunos-x64": "0.28.2", + "@esbuild/win32-arm64": "0.28.2", + "@esbuild/win32-ia32": "0.28.2", + "@esbuild/win32-x64": "0.28.2" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -11588,6 +11973,29 @@ "reusify": "^1.0.4" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -11727,6 +12135,18 @@ "node": ">= 6" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/formik": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", @@ -11778,6 +12198,21 @@ "node": ">=12" } }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -11821,6 +12256,74 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gaxios": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-8.3.1.tgz", + "integrity": "sha512-h4/R7ay7JFXU5kmAkp/Y4Y4Vmm7m83tD579GUgfQQsRRGQ4TzSedyHla6XgTWohQuVffT3ldN4FF6uCqlRGaEA==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "node-fetch": "^3.3.2" + }, + "engines": { + "node": ">=22" + } + }, + "node_modules/gaxios/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/gaxios/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/gaxios/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/gcp-metadata": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-9.2.2.tgz", + "integrity": "sha512-hlaHpCBoNCzoUjMnBZq0LbUiYqPAhXFaAgyNwQqwWU44TZIYJK3RD3o2wkNdvPs8nnUXqJjTudnodLJkLMBjow==", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^8.3.0", + "google-logging-utils": "^2.0.0", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=22" + } + }, "node_modules/generator-function": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", @@ -11989,6 +12492,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/google-auth-library": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-11.3.1.tgz", + "integrity": "sha512-mQS0R2Ev/DKkzuWSYtDeq15uhDeaWuT2qzLYqJ41LmooxVKHmn5ut3pc6dlHY6wfHW/D7FBmOYjAtkjaD1A7qA==", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^8.3.0", + "gcp-metadata": "^9.0.0", + "google-logging-utils": "^2.0.0", + "jws": "^4.0.0" + }, + "engines": { + "node": ">=22" + } + }, + "node_modules/google-logging-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-2.1.0.tgz", + "integrity": "sha512-1R6uiq6XhXW2ZrcGtZpGgVDsYGzSmveVOn8Pp37qe1fbThHZ34e3t3eXj5mVu6PFSVx9fvB1KNVnYgVtq/BRcA==", + "license": "Apache-2.0", + "engines": { + "node": ">=22" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -13168,6 +13697,15 @@ "node": ">=6" } }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -13220,6 +13758,35 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsrsasign": { + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-11.1.5.tgz", + "integrity": "sha512-i6mAjey0/4UQmlOaNS2vROl8EkWV8Ei436reJAby2OPQ3lF6uXSs1VYpnM8hndmmCMFIzNc04Uw2GF+0JVLFbg==", + "deprecated": "This package is no longer maintained.", + "license": "MIT" + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -13236,6 +13803,27 @@ "node": ">=4.0" } }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -13359,6 +13947,42 @@ "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", "license": "MIT" }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -13366,6 +13990,12 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, "node_modules/long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -14551,6 +15181,26 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "license": "ISC" }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, "node_modules/node-exports-info": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz", @@ -17369,6 +18019,25 @@ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "license": "0BSD" }, + "node_modules/tsx": { + "version": "4.23.15", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.15.tgz", + "integrity": "sha512-Yiex1Ovn8z2xPpOWckIiysV1SSyRMY9BkLF++q0yKiDxCqRhosKfMg3janKkiLBwZ5c/YryloKwGZcrEmtwxKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.28.0" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, "node_modules/type": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", @@ -18143,6 +18812,15 @@ "node": ">=0.10.0" } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", diff --git a/package.json b/package.json index 03cb191..e644b09 100644 --- a/package.json +++ b/package.json @@ -17,15 +17,18 @@ "test": "node --experimental-transform-types --test tests/core.test.mjs", "test:public-sample:prepare": "python3 scripts/prepare-public-sample.py", "test:public-sample:web": "node tests/e2e/public-sample-web.mjs", - "test:public-sample:api": "node tests/e2e/public-sample-api.mjs" + "test:public-sample:api": "node tests/e2e/public-sample-api.mjs", + "test:billing": "tsx --test tests/store-billing*.test.ts", + "billing:migrate": "node scripts/migrate-mobile-billing.mjs" }, "keywords": [], - "author": "Monadic DNA / Recherché Inc", + "author": "Monadic DNA / Recherch\u00e9 Inc", "license": "SEE LICENSE IN LICENSE", "engines": { "node": "24.x" }, "dependencies": { + "@apple/app-store-server-library": "^3.1.0", "@dynamic-labs/ethereum": "^5.9.4", "@dynamic-labs/sdk-react-core": "^5.9.4", "@huggingface/transformers": "^4.3.0", @@ -39,6 +42,7 @@ "crypto-browserify": "^3.12.1", "crypto-js": "^4.2.0", "ethers": "^6.13.4", + "google-auth-library": "^11.3.1", "jose": "^6.2.3", "next": "^16.2.10", "openai": "^7.28.0", @@ -63,6 +67,7 @@ "eslint": "^9.39.5", "eslint-config-next": "^16.2.10", "playwright": "^1.64.1", + "tsx": "^4.23.15", "typescript": "^5.9.3" }, "packageManager": "yarn@4.9.1+sha512.f95ce356460e05be48d66401c1ae64ef84d163dd689964962c6888a9810865e39097a5e9de748876c2e0bf89b232d583c33982773e9903ae7a76257270986538" diff --git a/scripts/migrate-mobile-billing.mjs b/scripts/migrate-mobile-billing.mjs new file mode 100644 index 0000000..b013be9 --- /dev/null +++ b/scripts/migrate-mobile-billing.mjs @@ -0,0 +1,9 @@ +import { readFile } from 'node:fs/promises'; +import pg from 'pg'; +const connectionString = process.env.POSTGRES_DB; +if (!connectionString) throw new Error('Set POSTGRES_DB to the intended environment database.'); +const local = ['localhost','127.0.0.1','::1'].includes(new URL(connectionString).hostname); +const ssl = local ? false : { rejectUnauthorized:true, ...(process.env.DATABASE_CA_CERT ? {ca:process.env.DATABASE_CA_CERT} : {}) }; +const client = new pg.Client({ connectionString, ssl }); +try { await client.connect(); await client.query(await readFile(new URL('../migrations/001-mobile-billing.sql',import.meta.url),'utf8')); console.log('Mobile billing schema applied.'); } +finally { await client.end(); } diff --git a/shared/billing-catalog.json b/shared/billing-catalog.json new file mode 100644 index 0000000..be51499 --- /dev/null +++ b/shared/billing-catalog.json @@ -0,0 +1,6 @@ +[ + {"id":"explorer_premium_monthly","kind":"subscription","title":"Explorer Premium","description":"Monthly access to premium reports and DNA chat."}, + {"id":"explorer_report_overview","kind":"consumable","reportType":"overview","title":"Overview report","description":"One comprehensive overview report run."}, + {"id":"explorer_report_healthspan","kind":"consumable","reportType":"healthspan","title":"Healthspan report","description":"One healthspan report run."}, + {"id":"explorer_report_top_traits","kind":"consumable","reportType":"top_traits","title":"Top traits report","description":"One top traits report run."} +] diff --git a/tests/store-billing-ledger.test.ts b/tests/store-billing-ledger.test.ts new file mode 100644 index 0000000..fa134bd --- /dev/null +++ b/tests/store-billing-ledger.test.ts @@ -0,0 +1,42 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { randomBytes } from 'node:crypto'; +import { billingAccount, recordPurchase, mobileEntitlements, consumeMobileReport } from '../lib/store-billing/ledger'; +import { getDb } from '../lib/db'; +import type { VerifiedPurchase } from '../lib/store-billing/catalog'; + +test('durable billing ledger: idempotence, ownership, encryption, refunds and atomic credit consumption', { skip:process.env.BILLING_DB_TEST !== 'true' }, async () => { + // Run only against an explicitly supplied isolated test database; never use the inherited deployment binding. + assert.match(process.env.POSTGRES_DB || '', /^postgres(?:ql)?:\/\/[^@]*@(?:127\.0\.0\.1|localhost):\d+\//); + process.env.MOBILE_BILLING_ENABLED='true'; + process.env.MOBILE_BILLING_TOKEN_KEY=randomBytes(32).toString('base64'); + const wallet='0x'+randomBytes(20).toString('hex'), secondWallet='0x'+randomBytes(20).toString('hex'); + const account=await billingAccount(wallet), other=await billingAccount(secondWallet); + const purchase:VerifiedPurchase={store:'google',purchaseId:randomBytes(32).toString('hex'),productId:'explorer_report_overview',kind:'consumable',reportType:'overview',accountId:account,proof:'sensitive-test-token',validUntil:null,revoked:false}; + try { + assert.equal(await billingAccount(wallet.toUpperCase().replace('0X','0x')),account); + await Promise.all(Array.from({length:5},()=>recordPurchase(purchase))); + assert.equal((await mobileEntitlements(wallet,false)).availableReports.overview,1); + const row=await getDb().query('SELECT proof FROM mobile_store_purchases WHERE account_id=$1',[account]); + assert.notEqual(row.rows[0].proof,purchase.proof); + await assert.rejects(recordPurchase({...purchase,accountId:other}),/another account/); + const consumed=await Promise.all(Array.from({length:12},()=>consumeMobileReport(wallet,'overview'))); + assert.equal(consumed.filter(Boolean).length,1); + // A replay after spending must not resurrect the credit. + await recordPurchase(purchase); + assert.equal((await mobileEntitlements(wallet,false)).availableReports.overview,0); + await recordPurchase({...purchase,purchaseId:purchase.purchaseId+'refund',revoked:true}); + assert.equal((await mobileEntitlements(wallet,false)).availableReports.overview,0); + const subscription:VerifiedPurchase={...purchase,purchaseId:'sub-'+purchase.purchaseId,productId:'explorer_premium_monthly',kind:'subscription',reportType:undefined,validUntil:new Date(Date.now()+3600000)}; + await recordPurchase(subscription); + assert.equal((await mobileEntitlements(wallet,false)).isActive,true); + await recordPurchase({...subscription,revoked:true}); + assert.equal((await mobileEntitlements(wallet,false)).isActive,false); + await recordPurchase({...subscription,validUntil:new Date(Date.now()-1000),revoked:false}); + assert.equal((await mobileEntitlements(wallet,false)).isActive,false); + } finally { + await getDb().query('DELETE FROM mobile_store_purchases WHERE account_id=ANY($1::uuid[])',[[account,other]]); + await getDb().query('DELETE FROM mobile_billing_accounts WHERE id=ANY($1::uuid[])',[[account,other]]); + await getDb().end(); + } +}); diff --git a/tests/store-billing.test.ts b/tests/store-billing.test.ts new file mode 100644 index 0000000..add459c --- /dev/null +++ b/tests/store-billing.test.ts @@ -0,0 +1,71 @@ +import assert from 'node:assert/strict'; +import { test } from 'node:test'; +import { readFileSync } from 'node:fs'; +import { generateKeyPairSync } from 'node:crypto'; +import { SignedDataVerifier, Environment } from '@apple/app-store-server-library'; +import { productFor } from '../lib/store-billing/catalog'; +import { normalizeApple, normalizeGoogle, assertStoreConfigured } from '../lib/store-billing/verification'; + +const account = 'c23d2d00-1b82-43fc-af3f-5be522e3dccf'; +const subscription='explorer_premium_monthly', report='explorer_report_overview'; +const apple = { transactionId:'123',originalTransactionId:'120',productId:subscription,bundleId:'com.monadicdna.explorer',environment:'Production',appAccountToken:account,quantity:1,type:'Auto-Renewable Subscription',expiresDate:Date.now()+86400000 }; +const play = { externalAccountIdentifiers:{obfuscatedExternalAccountId:account}, subscriptionState:'SUBSCRIPTION_STATE_ACTIVE',lineItems:[{productId:subscription,expiryTime:new Date(Date.now()+86400000).toISOString()}] }; + +test('allowlisted catalog rejects arbitrary paid features', () => { + assert.equal(productFor(report).reportType,'overview'); + assert.throws(() => productFor('attacker_product')); +}); +test('Apple account/app/environment/product type are independently bound', () => { + const valid=normalizeApple(apple,account,'123','Production'); + assert.equal(valid.purchaseId,'120'); + assert.equal(valid.kind,'subscription'); + for(const update of [{appAccountToken:'another-account'},{bundleId:'another.app'},{environment:'Sandbox'},{quantity:2},{type:'Consumable'}]) { + assert.throws(() => normalizeApple({...apple,...update},account,'123','Production')); + } + assert.equal(normalizeApple({...apple,revocationDate:Date.now()},account,'123','Production').revoked,true); +}); +test('Apple consumable uses transaction ID, not subscription-chain identity', () => { + const result=normalizeApple({...apple,productId:report,type:'Consumable'},account,'123','Production'); + assert.equal(result.purchaseId,'123');assert.equal(result.reportType,'overview'); +}); +test('Apple verifier rejects unsigned/fabricated purchase assertions', async () => { + const verifier = new SignedDataVerifier([readFileSync('certs/apple/AppleRootCA-G3.cer')],false,Environment.SANDBOX,'com.monadicdna.explorer'); + const jwt = [Buffer.from(JSON.stringify({alg:'none'})).toString('base64url'),Buffer.from(JSON.stringify(apple)).toString('base64url'),''].join('.'); + await assert.rejects(verifier.verifyAndDecodeTransaction(jwt)); +}); +test('Play binds account and SKU and excludes test purchases in production', () => { + assert.equal(normalizeGoogle(play,subscription,account,'token').revoked,false); + assert.throws(() => normalizeGoogle(play,subscription,'other','token')); + assert.throws(() => normalizeGoogle({...play,lineItems:[{productId:report}]},subscription,account,'token')); + assert.throws(() => normalizeGoogle({...play,testPurchase:{}},subscription,account,'token')); + assert.equal(normalizeGoogle({...play,testPurchase:{}},subscription,account,'token',true).revoked,false); +}); +test('Play expiry survives cancellation, while pending, paused, on-hold and expired states grant no access', () => { + assert.equal(normalizeGoogle({...play,subscriptionState:'SUBSCRIPTION_STATE_CANCELED'},subscription,account,'token').revoked,false); + for(const state of ['SUBSCRIPTION_STATE_PENDING','SUBSCRIPTION_STATE_PAUSED','SUBSCRIPTION_STATE_ON_HOLD','SUBSCRIPTION_STATE_EXPIRED']) { + assert.equal(normalizeGoogle({...play,subscriptionState:state},subscription,account,'token').revoked,true); + } + assert.throws(() => normalizeGoogle({...play,lineItems:[{productId:subscription,expiryTime:'invalid'}]},subscription,account,'token')); +}); +test('Play report refunds and pending payments cannot grant credits; multi-quantity purchases are rejected', () => { + const paid={obfuscatedExternalAccountId:account,purchaseState:0,quantity:1}; + assert.equal(normalizeGoogle(paid,report,account,'token').revoked,false); + assert.equal(normalizeGoogle({...paid,purchaseState:1},report,account,'token').revoked,true); + assert.equal(normalizeGoogle({...paid,purchaseState:2},report,account,'token').revoked,true); + assert.throws(() => normalizeGoogle({...paid,quantity:2},report,account,'token')); +}); + +test('purchase preflight rejects missing configuration and accepts an escaped PEM key', () => { + const names=['APPLE_IAP_PRIVATE_KEY','APPLE_IAP_ISSUER_ID','APPLE_IAP_KEY_ID','APPLE_APP_ID','APPLE_STORE_ENVIRONMENT']; + const previous=Object.fromEntries(names.map(name => [name,process.env[name]])); + try { + for(const name of names) delete process.env[name]; + assert.throws(() => assertStoreConfigured('apple')); + const {privateKey}=generateKeyPairSync('ec',{namedCurve:'prime256v1'}); + process.env.APPLE_IAP_PRIVATE_KEY=String(privateKey.export({type:'pkcs8',format:'pem'})).split(String.fromCharCode(10)).join(String.fromCharCode(92)+'n'); + process.env.APPLE_IAP_ISSUER_ID='test-issuer';process.env.APPLE_IAP_KEY_ID='TESTKEY';process.env.APPLE_APP_ID='123456'; + assert.doesNotThrow(() => assertStoreConfigured('apple')); + } finally { + for(const name of names) { if(previous[name]===undefined) delete process.env[name]; else process.env[name]=previous[name]; } + } +}); From e47d901024912aabe07b4b2f0367e0ae3472448e Mon Sep 17 00:00:00 2001 From: Vishakh Vishakh Date: Wed, 21 Oct 2026 17:18:43 +0000 Subject: [PATCH 06/16] Import Combine for the StoreKit purchase model --- apps/ios/Explorer/StoreBilling.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/ios/Explorer/StoreBilling.swift b/apps/ios/Explorer/StoreBilling.swift index 8f7db17..30e07a9 100644 --- a/apps/ios/Explorer/StoreBilling.swift +++ b/apps/ios/Explorer/StoreBilling.swift @@ -1,4 +1,5 @@ import Foundation +import Combine import StoreKit import UIKit From e44569b610834fe984518bd1f64df7846d1cd189 Mon Sep 17 00:00:00 2001 From: Vishakh Vishakh Date: Wed, 21 Oct 2026 18:45:41 +0000 Subject: [PATCH 07/16] Persist native user data with device-protected keys and encrypted sync --- .env.local.example | 3 + .github/workflows/pr-build.yml | 3 + Cargo.lock | 40 ++++ README.md | 2 + app/api/vault-sync/route.ts | 29 +++ app/components/CustomizationContext.tsx | 1 + app/portable-vault/page.tsx | 28 ++- apps/android/app/build.gradle.kts | 2 + .../monadicdna/explorer/PublicSampleTest.kt | 7 +- .../explorer/SecureDataVaultTest.kt | 65 ++++++ .../main/java/com/monadicdna/explorer/Core.kt | 8 + .../explorer/DeviceAuthentication.kt | 47 +++++ .../com/monadicdna/explorer/ExplorerModel.kt | 199 +++++++++++++++--- .../com/monadicdna/explorer/MainActivity.kt | 63 ++++-- .../monadicdna/explorer/SecureDataVault.kt | 177 ++++++++++++++++ apps/ios/Explorer/Core.swift | 13 ++ apps/ios/Explorer/ExplorerApp.swift | 54 +++-- apps/ios/Explorer/ExplorerStore.swift | 199 +++++++++++++++--- apps/ios/Explorer/Info.plist | 2 + apps/ios/Explorer/SecureDataVault.swift | 176 ++++++++++++++++ .../ios/ExplorerTests/PublicSampleTests.swift | 6 +- .../ExplorerTests/SecureDataVaultTests.swift | 53 +++++ crates/explorer-core/Cargo.toml | 2 + crates/explorer-core/src/lib.rs | 16 ++ crates/explorer-core/src/session.rs | 56 ++++- crates/explorer-core/src/vault.rs | 135 ++++++++++++ docs/secure-data-vault.md | 45 ++++ lib/vault-sync.ts | 56 +++++ migrations/002-encrypted-vault-sync.sql | 9 + package.json | 4 +- scripts/migrate-vault-sync.mjs | 7 + tests/core.test.mjs | 25 +++ tests/e2e/public-sample-web.mjs | 23 +- tests/vault-format.mjs | 23 ++ tests/vault-sync.test.ts | 38 ++++ 35 files changed, 1491 insertions(+), 125 deletions(-) create mode 100644 app/api/vault-sync/route.ts create mode 100644 apps/android/app/src/androidTest/java/com/monadicdna/explorer/SecureDataVaultTest.kt create mode 100644 apps/android/app/src/main/java/com/monadicdna/explorer/DeviceAuthentication.kt create mode 100644 apps/android/app/src/main/java/com/monadicdna/explorer/SecureDataVault.kt create mode 100644 apps/ios/Explorer/SecureDataVault.swift create mode 100644 apps/ios/ExplorerTests/SecureDataVaultTests.swift create mode 100644 crates/explorer-core/src/vault.rs create mode 100644 docs/secure-data-vault.md create mode 100644 lib/vault-sync.ts create mode 100644 migrations/002-encrypted-vault-sync.sql create mode 100644 scripts/migrate-vault-sync.mjs create mode 100644 tests/vault-format.mjs create mode 100644 tests/vault-sync.test.ts diff --git a/.env.local.example b/.env.local.example index 5f9ce01..d4755a5 100644 --- a/.env.local.example +++ b/.env.local.example @@ -147,3 +147,6 @@ GOOGLE_PLAY_SERVICE_ACCOUNT_JSON= GOOGLE_PLAY_ALLOW_TEST_PURCHASES=false GOOGLE_RTDN_AUDIENCE= GOOGLE_RTDN_SERVICE_ACCOUNT_EMAIL= + +# Ciphertext-only mobile sync: run npm run vault:migrate before enabling. +VAULT_SYNC_ENABLED=false diff --git a/.github/workflows/pr-build.yml b/.github/workflows/pr-build.yml index 6919bbf..aa60740 100644 --- a/.github/workflows/pr-build.yml +++ b/.github/workflows/pr-build.yml @@ -44,9 +44,12 @@ jobs: run: | node scripts/migrate-mobile-billing.mjs npm run test:billing + npm run vault:migrate + npm run test:vault-sync env: POSTGRES_DB: postgresql://explorer:billing-test-only@127.0.0.1:5432/billing_test BILLING_DB_TEST: 'true' + VAULT_DB_TEST: 'true' - name: Install shared core toolchain run: rustup show active-toolchain diff --git a/Cargo.lock b/Cargo.lock index 2b67f9b..ded1104 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -64,6 +64,18 @@ version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" +[[package]] +name = "argon2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072" +dependencies = [ + "base64ct", + "blake2", + "cpufeatures", + "password-hash", +] + [[package]] name = "askama" version = "0.13.1" @@ -124,6 +136,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" + [[package]] name = "basic-toml" version = "0.1.10" @@ -139,6 +157,15 @@ version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -403,8 +430,10 @@ name = "explorer-core" version = "1.0.0" dependencies = [ "aes-gcm", + "argon2", "base64", "flate2", + "hmac", "k256", "md-5", "pbkdf2", @@ -648,6 +677,17 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "password-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core", + "subtle", +] + [[package]] name = "pbkdf2" version = "0.12.2" diff --git a/README.md b/README.md index aa2d4e7..2729241 100644 --- a/README.md +++ b/README.md @@ -446,3 +446,5 @@ See [LICENSE](LICENSE) for full dual license details and [LICENSE-COMMERCIAL.md] Cerezo M, Sollis E, Ji Y, Lewis E, Abid A, Bircan KO, Hall P, Hayhurst J, John S, Mosaku A, Ramachandran S, Foreman A, Ibrahim A, McLaughlin J, Pendlington Z, Stefancsik R, Lambert SA, McMahon A, Morales J, Keane T, Inouye M, Parkinson H, Harris LW. doi.org/10.1093/nar/gkae1070 Nucleic Acids Research, Volume 53, Issue D1, 6 January 2025, Pages D998–D1005 + +See [secure persistence, recovery and encrypted sync](docs/secure-data-vault.md) for device key protection, cross-platform transfers and backend setup. diff --git a/app/api/vault-sync/route.ts b/app/api/vault-sync/route.ts new file mode 100644 index 0000000..88381fc --- /dev/null +++ b/app/api/vault-sync/route.ts @@ -0,0 +1,29 @@ +import { NextResponse } from 'next/server'; +import { verifyWalletAuth } from '@/lib/dynamic-auth'; +import { deleteSyncedVault, MAX_SYNC_BYTES, readSyncedVault, VaultSyncError, writeSyncedVault } from '@/lib/vault-sync'; +export const runtime='nodejs'; +async function body(request:Request):Promise> { + const reader=request.body?.getReader();if(!reader) throw new VaultSyncError('Missing request'); + const parts:Uint8Array[]=[];let size=0; + while(true) {const {done,value}=await reader.read();if(done) break;size+=value.length;if(size>MAX_SYNC_BYTES){await reader.cancel();throw new VaultSyncError('Encrypted vault is too large',413);}parts.push(value);} + try{return JSON.parse(Buffer.concat(parts).toString('utf8'));}catch{throw new VaultSyncError('Invalid request');} +} +async function wallet(request:Request,value:unknown) { + if(process.env.VAULT_SYNC_ENABLED!=='true') throw new VaultSyncError('Encrypted sync is not configured',503); + if(typeof value!=='string' || !/^0x[0-9a-f]{40}$/i.test(value)) throw new VaultSyncError('Invalid account'); + const auth=await verifyWalletAuth(request.headers.get('authorization'),value); + if(!auth.ok) throw new VaultSyncError(auth.error || 'Authentication required',auth.status || 401); + return value.toLowerCase(); +} +function failure(error:unknown) {const known=error instanceof VaultSyncError?error:new VaultSyncError('Encrypted sync is unavailable',503);return NextResponse.json({error:known.message},{status:known.status,headers:{'Cache-Control':'no-store'}});} +export async function POST(request:Request) { + try { + const data=await body(request), owner=await wallet(request,data.walletAddress); + switch(data.action) { + case 'read':return NextResponse.json(await readSyncedVault(owner,typeof data.knownRevision==='number'?data.knownRevision:undefined,typeof data.knownGenotype==='string'?data.knownGenotype:undefined),{headers:{'Cache-Control':'no-store'}}); + case 'write':return NextResponse.json({revision:await writeSyncedVault(owner,Number(data.baseRevision),data.archive as Parameters[2])},{headers:{'Cache-Control':'no-store'}}); + case 'delete':await deleteSyncedVault(owner,Number(data.baseRevision));return NextResponse.json({deleted:true}); + default:throw new VaultSyncError('Invalid sync action'); + } + } catch(error) {return failure(error);} +} diff --git a/app/components/CustomizationContext.tsx b/app/components/CustomizationContext.tsx index 98e682e..c932f9e 100644 --- a/app/components/CustomizationContext.tsx +++ b/app/components/CustomizationContext.tsx @@ -4,6 +4,7 @@ import { createContext, useContext, useState, useEffect, useRef, ReactNode } fro import { useVault, LEGACY_PERSONALIZATION_KEY } from "./VaultContext"; export interface UserCustomization { + additionalContext?: string; ethnicities: string[]; countriesOfOrigin: string[]; genderAtBirth: string; diff --git a/app/portable-vault/page.tsx b/app/portable-vault/page.tsx index 5f3b497..d8212b2 100644 --- a/app/portable-vault/page.tsx +++ b/app/portable-vault/page.tsx @@ -4,14 +4,16 @@ import { useRef, useState } from 'react'; import { coreCall } from '@/lib/core'; import { useGenotype } from '@/app/components/UserDataUpload'; import { useResults } from '@/app/components/ResultsContext'; +import { useCustomization, type UserCustomization } from '@/app/components/CustomizationContext'; import type { SavedResult } from '@/lib/results-manager'; -type PortableSnapshot = { version: 1; genotypes: Record; results: SavedResult[]; metadata: { fileHash?: string; fileName?: string; detectedFormat?: string; count?: number } }; +type PortableSnapshot = { version: 1; genotypes: Record; results: SavedResult[]; customization?: { fields: Record; context: string }; metadata: { fileHash?: string; fileName?: string; detectedFormat?: string; count?: number } }; const entropy = (count: number) => btoa(Array.from(crypto.getRandomValues(new Uint8Array(count)), b => String.fromCharCode(b)).join('')); export default function PortableVaultPage() { const genotype = useGenotype(); const results = useResults(); + const personalization = useCustomization(); const [password, setPassword] = useState(''); const [message, setMessage] = useState(''); const [busy, setBusy] = useState(false); @@ -20,12 +22,17 @@ export default function PortableVaultPage() { async function exportVault() { setBusy(true); setMessage(''); try { - if (password.length < 8) throw new Error('Use a passphrase with at least eight characters.'); + if (password.length < 12) throw new Error('Use a recovery passphrase with at least 12 characters.'); const snapshot: PortableSnapshot = { + customization: { fields: Object.fromEntries(Object.entries(personalization.customization || {}).filter(([key]) => key !== 'additionalContext').map(([key,value]) => [key, Array.isArray(value) ? value.join(', ') : value == null ? '' : String(value)])), context: personalization.customization?.additionalContext || '' }, version: 1, genotypes: Object.fromEntries(genotype.genotypeData || []), results: results.savedResults, metadata: { fileHash: genotype.fileHash || undefined, fileName: genotype.originalFileName || undefined, detectedFormat: genotype.detectedFormat || undefined, count: genotype.genotypeData?.size || 0 }, }; - const sealed = coreCall('seal', { plaintext: JSON.stringify(snapshot), password, salt: entropy(16), iv: entropy(12), iterations: 600000 }); + const key=entropy(32), vaultId=crypto.randomUUID(); + const envelope=coreCall('vault_seal',{snapshot:JSON.stringify(snapshot),key,vaultId,revision:1,nonce:entropy(12)}); + const wrappedKey=coreCall('vault_wrap_key',{key,vaultId,password,salt:entropy(16),nonce:entropy(12)}); + const archive={version:2,envelope,wrappedKey}; + const sealed={...archive,mac:coreCall('vault_record_mac',{key,record:archive})}; const url = URL.createObjectURL(new Blob([JSON.stringify(sealed)], { type: 'application/json' })); const link = document.createElement('a'); link.href = url; link.download = 'monadic-vault.json'; link.click(); setTimeout(() => URL.revokeObjectURL(url), 1000); @@ -39,23 +46,30 @@ export default function PortableVaultPage() { try { if (selected.size > 300 * 1024 * 1024) throw new Error('Vault exceeds 300 MB.'); const envelope = JSON.parse(await selected.text()); - const plaintext = coreCall('open', { ...envelope, password }); + let plaintext:string; + if(envelope.version===2) { + if(envelope.envelope?.vaultId!==envelope.wrappedKey?.vaultId)throw new Error('Invalid recovery archive.'); + const key=coreCall('vault_unwrap_key',{wrappedKey:envelope.wrappedKey,password}); + coreCall('vault_record_verify',{key,record:envelope}); + plaintext=coreCall('vault_open',{envelope:envelope.envelope,key}); + } else { plaintext=coreCall('open',{...envelope,password}); } session = coreCall('session_create'); coreCall('session_restore', { session, snapshot: plaintext }); // Validate before altering UI state. const snapshot = JSON.parse(plaintext) as PortableSnapshot; genotype.restoreGenotype({ data: new Map(Object.entries(snapshot.genotypes)), fileHash: snapshot.metadata.fileHash || null, originalFileName: snapshot.metadata.fileName || null, originalFileSize: null, detectedFormat: snapshot.metadata.detectedFormat || null, fileExtension: snapshot.metadata.fileName?.split('.').pop() || null }); await results.restoreResults(snapshot.results); + if(snapshot.customization) personalization.setSessionCustomization({...coreCall('parse_profile',snapshot.customization.fields),additionalContext:snapshot.customization.context}); setPassword(''); setMessage(`Restored ${Object.keys(snapshot.genotypes).length.toLocaleString()} variants and ${snapshot.results.length.toLocaleString()} results into memory.`); } catch (cause) { setMessage(cause instanceof Error ? cause.message : 'Import failed.'); } finally { if (session !== undefined) coreCall('session_close', { session }); setBusy(false); if (file.current) file.current.value = ''; } } return

Portable encrypted vault

-

Move your DNA and saved study results between Web, Android, and iOS. Encryption and the file format come from the same Rust library on all three platforms.

-

The passphrase protects the exported file. Imports replace your in-memory DNA and results; they do not overwrite an existing on-device vault. Your data stays on this device.

+

Move your DNA, saved study results and customization between Web, Android, and iOS. Encryption and the file format come from the same Rust library on all three platforms.

+

The passphrase protects the exported file. Imports replace your in-memory DNA, results and customization; they do not overwrite an existing on-device vault. Your data stays on this device. Use the save controls for DNA, results and customization to persist imported data in the browser’s encrypted vault. Automatic cloud sync is currently available in the native apps.

- +
{ const selected = event.target.files?.[0]; if (selected) void importVault(selected); }} /> diff --git a/apps/android/app/build.gradle.kts b/apps/android/app/build.gradle.kts index bd66ff6..d77709f 100644 --- a/apps/android/app/build.gradle.kts +++ b/apps/android/app/build.gradle.kts @@ -25,6 +25,8 @@ android { } } dependencies { + implementation("androidx.biometric:biometric:1.1.0") + implementation("androidx.fragment:fragment-ktx:1.8.7") implementation("com.android.billingclient:billing-ktx:8.0.0") val composeBom = platform("androidx.compose:compose-bom:2025.04.01") implementation(composeBom) diff --git a/apps/android/app/src/androidTest/java/com/monadicdna/explorer/PublicSampleTest.kt b/apps/android/app/src/androidTest/java/com/monadicdna/explorer/PublicSampleTest.kt index f5d4f56..c6f90e2 100644 --- a/apps/android/app/src/androidTest/java/com/monadicdna/explorer/PublicSampleTest.kt +++ b/apps/android/app/src/androidTest/java/com/monadicdna/explorer/PublicSampleTest.kt @@ -9,7 +9,8 @@ import androidx.compose.ui.test.captureToImage import androidx.compose.ui.graphics.asAndroidBitmap import android.graphics.Bitmap import java.io.File -import androidx.lifecycle.ViewModelProvider +import androidx.activity.compose.setContent +import java.util.UUID import androidx.test.platform.app.InstrumentationRegistry import okhttp3.mockwebserver.MockWebServer import okhttp3.mockwebserver.MockResponse @@ -42,7 +43,9 @@ class PublicSampleTest { lateinit var model:ExplorerModel try { ui.runOnUiThread { - model=ViewModelProvider(ui.activity)[ExplorerModel::class.java] + model=ExplorerModel(ui.activity.application,SecureDataVault(ui.activity,TestVaultProtector(),File(ui.activity.cacheDir,"public-sample-${UUID.randomUUID()}"))) + model.authenticate={} + ui.activity.setContent { VaultTheme { ExplorerApp(model) } } model.backend=endpoint model.acceptedDisclaimer=true } diff --git a/apps/android/app/src/androidTest/java/com/monadicdna/explorer/SecureDataVaultTest.kt b/apps/android/app/src/androidTest/java/com/monadicdna/explorer/SecureDataVaultTest.kt new file mode 100644 index 0000000..09ff20e --- /dev/null +++ b/apps/android/app/src/androidTest/java/com/monadicdna/explorer/SecureDataVaultTest.kt @@ -0,0 +1,65 @@ +package com.monadicdna.explorer + +import androidx.test.platform.app.InstrumentationRegistry +import kotlinx.coroutines.runBlocking +import org.json.JSONObject +import org.junit.Assert.* +import org.junit.Test +import java.io.File +import javax.crypto.Cipher +import javax.crypto.spec.GCMParameterSpec +import javax.crypto.spec.SecretKeySpec + +// Simulator-only injected protector. Production always uses authenticated Android Keystore. +class TestVaultProtector:VaultKeyProtector { + private val key=SecretKeySpec(randomBytes(32),"AES") + override val description="Explicit test protector" + override fun wrap(key:ByteArray,id:String):JSONObject { + val c=Cipher.getInstance("AES/GCM/NoPadding");c.init(Cipher.ENCRYPT_MODE,this.key);c.updateAAD(id.toByteArray()) + return json("nonce" to encode(c.iv),"ciphertext" to encode(c.doFinal(key))) + } + override fun unwrap(value:JSONObject,id:String):ByteArray { + val c=Cipher.getInstance("AES/GCM/NoPadding");c.init(Cipher.DECRYPT_MODE,key,GCMParameterSpec(128,decode(value.getString("nonce"))));c.updateAAD(id.toByteArray());return c.doFinal(decode(value.getString("ciphertext"))) + } + override fun delete(){} +} +class SecureDataVaultTest { + @Test fun restartRecoveryTamperAndGenotypeReuse()=runBlocking { + val context=InstrumentationRegistry.getInstrumentation().targetContext + val dir=File(context.cacheDir,"vault-test-${System.nanoTime()}") + val second=File(context.cacheDir,"vault-second-${System.nanoTime()}") + val protector=TestVaultProtector() + val s=(Core.call("session_create") as Number).toLong() + val t=(Core.call("session_create") as Number).toLong() + try { + val vault=SecureDataVault(context,protector,dir) + vault.unlock(s){} + Core.call("session_import",json("session" to s,"content" to "# 23andMe\nrs1 1 100 AG","fileName" to "private.txt")) + val custom=json("fields" to json("age" to "42"),"context" to "private context") + vault.save(s,custom) + vault.enableSync("0x"+"a".repeat(40),"unique recovery passphrase") + val first=vault.archive();val genotype=first.getJSONObject("envelope").getJSONObject("genotype").toString() + first.getJSONObject("envelope").remove("genotype") // Returned archive must be independent of saved record. + assertTrue(vault.archive().getJSONObject("envelope").has("genotype")) + vault.save(s,json("fields" to json("age" to "43"),"context" to "private context")) + assertEquals(genotype,vault.archive().getJSONObject("envelope").getJSONObject("genotype").toString()) + val backup=JSONObject(vault.backup("unique recovery passphrase")) + val raw=File(dir,"vault-v2.json").readText() + assertFalse(raw.contains("private context"));assertFalse(raw.contains("private.txt"));assertFalse(raw.contains("rs1")) + vault.lock() + val restarted=SecureDataVault(context,protector,dir) + assertEquals("43",restarted.unlock(t){}.getJSONObject("fields").getString("age")) + assertEquals(1,Core.obj("session_metadata",json("session" to t)).getInt("count")) + val recovered=SecureDataVault(context,TestVaultProtector(),second) + var failed=false + try{recovered.restore(t,backup,"incorrect recovery password",{})}catch(_:Exception){failed=true} + assertTrue(failed);assertFalse(recovered.exists) + assertEquals("43",recovered.restore(t,backup,"unique recovery passphrase",{}).getJSONObject("fields").getString("age")) + restarted.lock() + val changed=JSONObject(raw);changed.getJSONObject("sync").put("revision",999) + File(dir,"vault-v2.json").writeText(changed.toString()) + failed=false;try{restarted.unlock(t){}}catch(_:Exception){failed=true};assertTrue(failed) + recovered.lock() + } finally {Core.call("session_close",json("session" to s));Core.call("session_close",json("session" to t));dir.deleteRecursively();second.deleteRecursively()} + } +} diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/Core.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/Core.kt index 57a4e2d..a9fc3c0 100644 --- a/apps/android/app/src/main/java/com/monadicdna/explorer/Core.kt +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/Core.kt @@ -11,6 +11,14 @@ object Core { check(response.getBoolean("ok")) { response.optString("error","File import failed") } return response.getJSONObject("value") } + fun persistSession(session:Long,key:ByteArray,id:String,revision:Long,nonce:ByteArray,customization:String):JSONObject { + val response=JSONObject(com.monadicdna.explorer.core.persistSession(session.toULong(),key,id,revision.toULong(),nonce,customization)) + check(response.getBoolean("ok")){response.optString("error","Unable to encrypt data")};return response.getJSONObject("value") + } + fun restorePersisted(session:Long,key:ByteArray,encrypted:String):JSONObject { + val response=JSONObject(com.monadicdna.explorer.core.restorePersistedSession(session.toULong(),key,encrypted)) + check(response.getBoolean("ok")){response.optString("error","Unable to restore data")};return response.getJSONObject("value") + } fun call(operation: String, input: Any? = null): Any? { val request = JSONObject().put("version", 1).put("operation", operation).put("input", input ?: JSONObject.NULL) val response = JSONObject(coreCall(request.toString())) diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/DeviceAuthentication.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/DeviceAuthentication.kt new file mode 100644 index 0000000..6c9be4a --- /dev/null +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/DeviceAuthentication.kt @@ -0,0 +1,47 @@ +package com.monadicdna.explorer + +import android.app.Activity +import android.app.KeyguardManager +import android.os.Build +import androidx.activity.result.contract.ActivityResultContracts +import androidx.biometric.BiometricPrompt +import androidx.biometric.BiometricManager.Authenticators +import androidx.core.content.ContextCompat +import androidx.fragment.app.FragmentActivity +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.suspendCancellableCoroutine +import kotlinx.coroutines.withContext +import kotlin.coroutines.Continuation +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException + +class DeviceAuthentication(private val activity:FragmentActivity) { + private var pending:kotlinx.coroutines.CancellableContinuation?=null + val active get()=pending?.isActive==true + private val credential=activity.registerForActivityResult(ActivityResultContracts.StartActivityForResult()){result-> + val continuation=pending;pending=null + if(continuation?.isActive==true) { + if(result.resultCode==Activity.RESULT_OK) continuation.resume(Unit) + else continuation.resumeWithException(IllegalStateException("Device authentication was cancelled.")) + } + } + suspend fun authenticate()=withContext(Dispatchers.Main.immediate) { + val keyguard=activity.getSystemService(KeyguardManager::class.java) + check(keyguard.isDeviceSecure){"Set a device passcode before saving DNA on this device."} + suspendCancellableCoroutine{continuation-> + check(!active){"Authentication is already in progress."};pending=continuation + if(Build.VERSION.SDK_INT>=30) { + val prompt=BiometricPrompt(activity,ContextCompat.getMainExecutor(activity),object:BiometricPrompt.AuthenticationCallback(){ + override fun onAuthenticationSucceeded(result:BiometricPrompt.AuthenticationResult){pending=null;if(continuation.isActive)continuation.resume(Unit)} + override fun onAuthenticationError(code:Int,message:CharSequence){pending=null;if(continuation.isActive)continuation.resumeWithException(IllegalStateException("Device authentication was not completed."))} + }) + continuation.invokeOnCancellation{pending=null;prompt.cancelAuthentication()} + prompt.authenticate(BiometricPrompt.PromptInfo.Builder().setTitle("Unlock your saved data").setSubtitle("Protect your DNA, results and customization") + .setAllowedAuthenticators(Authenticators.BIOMETRIC_STRONG or Authenticators.DEVICE_CREDENTIAL).build()) + } else { + continuation.invokeOnCancellation{pending=null} + credential.launch(keyguard.createConfirmDeviceCredentialIntent("Unlock your saved data","Protect your DNA, results and customization")) + } + } + } +} diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt index 7385689..c61f9a2 100644 --- a/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/ExplorerModel.kt @@ -18,7 +18,7 @@ import java.io.IOException import kotlin.coroutines.resume import kotlin.coroutines.resumeWithException -class ExplorerModel(app: Application) : AndroidViewModel(app) { +class ExplorerModel @JvmOverloads constructor(app: Application, val dataVault:SecureDataVault=SecureDataVault(app)) : AndroidViewModel(app) { val store = DeviceStore(app) var session = (Core.call("session_create") as Number).toLong() private set @@ -28,10 +28,10 @@ class ExplorerModel(app: Application) : AndroidViewModel(app) { var apiKey by mutableStateOf(store.get("api-key-$provider")) var ollamaAddress by mutableStateOf(store.get("ollama-address").ifBlank { "localhost" }) var ollamaPort by mutableStateOf(store.get("ollama-port").ifBlank { "11434" }) - var profile by mutableStateOf(store.get("profile")) + var profile by mutableStateOf("") val profileSchema = Core.arr("profile_schema").objects() val profileFields = mutableStateMapOf().apply { - val saved=store.get("profile-fields").ifBlank { "{}" };val fields=JSONObject(saved) + val fields=JSONObject() profileSchema.forEach { put(it.getString("key"),fields.optString(it.getString("key"))) } } private fun profileData() = Core.obj("parse_profile",JSONObject(profileFields.toMap())) @@ -53,15 +53,156 @@ class ExplorerModel(app: Application) : AndroidViewModel(app) { val messages = mutableStateListOf>() private val http = OkHttpClient.Builder().connectTimeout(20,TimeUnit.SECONDS).readTimeout(180,TimeUnit.SECONDS).build() private var task: Job? = null + var authenticate:(suspend()->Unit)?=null + var dataUnlocked by mutableStateOf(false) + private set + var storageMessage by mutableStateOf("Your saved data is locked.") + private set + var syncing by mutableStateOf(false) + private set + private var dataDirty=false + private var dataVersion=0L + private var autosave:Job?=null + private var lockJob:Job?=null + private var syncJob:Job?=null + private var syncAgain=false + var locking by mutableStateOf(false) + private set + private var lastCustomization="" + private fun customization()=json("fields" to JSONObject(profileFields.toMap()),"context" to profile) + init { + viewModelScope.launch { + snapshotFlow { profile to profileFields.toMap() }.collect { + if(dataUnlocked && customization().toString()!=lastCustomization) markDataChanged() + } + } + } + private fun restoreCustomization(value:JSONObject) { + profile=value.optString("context") + val fields=value.optJSONObject("fields") ?: JSONObject() + profileFields.clear();profileSchema.forEach{field->profileFields[field.getString("key")]=fields.optString(field.getString("key"))} + lastCustomization=customization().toString() + } + suspend fun unlockData() { + lockJob?.join() + if(dataUnlocked)return + val hadData=dataVault.exists + val restored=dataVault.unlock(session){requireNotNull(authenticate){"Open the app to unlock your saved data."}.invoke()} + restoreCustomization(restored) + metadata=Core.obj("session_metadata",json("session" to session));refreshResults() + dataUnlocked=true;storageMessage="Saved on device • ${dataVault.protection}" + if(!hadData) { + val legacy=store.get("profile-fields").ifBlank{"{}"} + restoreCustomization(json("fields" to JSONObject(legacy),"context" to store.get("profile"))) + dataDirty=true;flushData() + store.remove("profile");store.remove("profile-fields") + } + queueSync() + } + fun unlockSavedData()=run("Unlocking saved data"){unlockData()} + private fun markDataChanged() { + dataDirty=true;dataVersion++;storageMessage="Saving securely…" + autosave?.cancel() + autosave=viewModelScope.launch{delay(500);try{flushData()}catch(e:Exception){if(dataUnlocked)storageMessage="Changes not saved. ${e.message ?: "Please retry."}"}} + } + suspend fun flushData() { + if(!dataUnlocked || !dataDirty)return + val version=dataVersion;val custom=customization() + dataVault.save(session,custom) + lastCustomization=custom.toString() + if(version==dataVersion)dataDirty=false + storageMessage=if(dataDirty)"Saving securely…" else "Saved on device • ${dataVault.protection}" + queueSync() + } + private fun wipeMemory() { + Core.call("session_close",json("session" to session));session=(Core.call("session_create") as Number).toLong() + metadata=JSONObject();results=emptyList();messages.clear();report="";reportQuestions=emptyList();selectedStudy=null + profile="";profileFields.clear();dataUnlocked=false;dataDirty=false;lastCustomization="" + } + fun lockData() { + if(lockJob?.isActive==true)return + val running=task + locking=true + lockJob=viewModelScope.launch { + running?.cancelAndJoin();autosave?.cancelAndJoin();syncJob?.cancelAndJoin() + try{flushData()}catch(e:Exception){error="Latest changes could not be saved. The previous encrypted copy is intact."} + dataVault.lock();wipeMemory();storageMessage="Your saved data is locked.";locking=false + } + } + fun backgroundLock(){if(dataUnlocked)lockData()} + private fun queueSync() { + if(!dataUnlocked || locking)return + if(syncJob?.isActive==true){syncAgain=true;return} + syncJob=viewModelScope.launch { + while(busy)delay(100) + delay(1000) + syncing=true + try{do{syncAgain=false;syncOnce()}while(syncAgain)}catch(e:Exception){storageMessage="Saved on device. Sync needs attention: ${e.message ?: "please retry"}"} + finally{syncing=false} + } + } + private suspend fun syncOnce() { + val config=dataVault.syncConfiguration() ?: return + if(!config.optBoolean("enabled"))return + require(wallet.isNotBlank() && wallet.equals(config.optString("wallet"),true)){"Sign in to the account used to enable sync."} + val observedVersion=dataVersion + val remote=api("/api/vault-sync",json("walletAddress" to wallet,"action" to "read","knownRevision" to config.optLong("revision"),"knownGenotype" to dataVault.genotypeDigest())) + val revision=remote.getLong("revision");val base=config.optLong("revision") + val latest=dataVault.syncConfiguration() ?: return + if(!latest.optBoolean("enabled") || latest.optString("wallet")!=config.optString("wallet"))return + if(revision==base) { + if(config.optBoolean("dirty")) { + val archive=dataVault.archive() + val uploaded=archive.getJSONObject("envelope").getLong("revision") + if(archive.getJSONObject("envelope").optString("genotypeDigest")==remote.optString("genotypeDigest")) archive.getJSONObject("envelope").remove("genotype") + val response=api("/api/vault-sync",json("walletAddress" to wallet,"action" to "write","baseRevision" to base,"archive" to archive)) + dataVault.synced(response.getLong("revision"),uploaded) + } + } else { + val cloud=remote.optJSONObject("archive") + if(cloud!=null && cloud.optString("mac")==dataVault.archive().optString("mac")) { + dataVault.synced(revision,dataVault.archive().getJSONObject("envelope").getLong("revision"));return + } + require(!dataDirty && observedVersion==dataVersion && !busy && !latest.optBoolean("dirty")){"Another device has changes. Choose Restore cloud copy to replace this device's data, or export a backup before resolving the conflict."} + require(!remote.isNull("archive")){"The cloud copy was removed. Disable sync or set it up again explicitly."} + val restored=dataVault.acceptCloud(session,remote.getJSONObject("archive"),revision) + restoreCustomization(restored);metadata=Core.obj("session_metadata",json("session" to session));refreshResults() + } + storageMessage="Saved on device and encrypted sync is up to date." + } + fun syncNow()=run("Syncing encrypted data"){unlockData();flushData();queueSync()} + fun enableSync(password:String)=run("Setting up encrypted sync"){ + require(wallet.isNotBlank()){ "Sign in before enabling sync." };unlockData();flushData();dataVault.enableSync(wallet,password);queueSync() + } + fun disableSync()=run("Disabling sync on this device"){dataVault.disableSync();storageMessage="Saved on device. Sync is disabled on this device."} + fun restoreCloud(password:String)=run("Restoring encrypted cloud data"){ + require(wallet.isNotBlank()){ "Sign in to restore cloud data." } + val remote=api("/api/vault-sync",json("walletAddress" to wallet,"action" to "read")) + require(!remote.isNull("archive")){"No encrypted cloud copy exists for this account."} + val custom=dataVault.restore(session,remote.getJSONObject("archive"),password,{requireNotNull(authenticate).invoke()},true) + restoreCustomization(custom);dataUnlocked=true;dataDirty=false;metadata=Core.obj("session_metadata",json("session" to session));refreshResults() + dataVault.enableExistingSync(wallet,remote.getLong("revision"));storageMessage="Restored encrypted cloud data and enabled sync." + } + fun deleteCloud()=run("Deleting cloud copy"){ + require(wallet.isNotBlank()){ "Sign in first." } + requireNotNull(dataVault.syncConfiguration()) {"Unlock your saved data first."} + val response=api("/api/vault-sync",json("walletAddress" to wallet,"action" to "read")) + api("/api/vault-sync",json("walletAddress" to wallet,"action" to "delete","baseRevision" to response.getLong("revision"))) + dataVault.disableSync();storageMessage="Cloud copy deleted. The encrypted device copy is retained." + } + fun run(label: String, block: suspend () -> Unit) { - if (busy) return + if (busy || syncing || locking) return task = viewModelScope.launch { busy=true; status=label; error=null try { block(); status="Complete" } catch (cancelled: CancellationException) { status="Cancelled"; throw cancelled } catch (e: Exception) { error=e.message ?: "Operation failed" } - finally { busy=false } + finally { + try{if(dataUnlocked && dataDirty)withContext(NonCancellable){flushData()}}catch(e:Exception){storageMessage="Changes not saved. Please retry.";error=e.message} + busy=false + } } } fun cancel() { task?.cancel() } @@ -98,8 +239,8 @@ class ExplorerModel(app: Application) : AndroidViewModel(app) { fun settingsSaved() { checkedBackend() profileData() - store.put("profile-fields",JSONObject(profileFields.toMap()).toString()) - listOf("backend" to backend,"provider" to provider,"model" to model,"api-key-$provider" to apiKey,"ollama-address" to ollamaAddress,"ollama-port" to ollamaPort,"profile" to profile).forEach{store.put(it.first,it.second)} + if(dataUnlocked)markDataChanged() + listOf("backend" to backend,"provider" to provider,"model" to model,"api-key-$provider" to apiKey,"ollama-address" to ollamaAddress,"ollama-port" to ollamaPort).forEach{store.put(it.first,it.second)} } fun selectProvider(next: String) { try { store.put("api-key-$provider",apiKey);provider=next;apiKey=store.get("api-key-$next") } catch(e:Exception){error="Unable to switch secure provider settings"} } fun browse(query: String, trait: String, semantic: Boolean, offset: Int = 0) = run("Loading studies") { @@ -113,19 +254,22 @@ class ExplorerModel(app: Application) : AndroidViewModel(app) { fun importGenotype(bytes: ByteArray, name: String) = run("Reading DNA locally") { importGenotypeData(bytes, name) } suspend fun importGenotypeData(bytes: ByteArray, name: String) { require(acceptedDisclaimer) { "Accept the educational-use disclaimer before importing DNA." } + unlockData();markDataChanged() val importSession=session metadata=withContext(Dispatchers.Default) { Core.importGenotype(importSession,bytes,name) } results=emptyList() } suspend fun refreshResults() { results=withContext(Dispatchers.Default) { Core.arr("session_results",json("session" to session)).objects() } } fun analyze(study: JSONObject) = run("Analyzing on device") { - require(metadata.optInt("count")>0) { "Import your DNA first." } + require(dataUnlocked && metadata.optInt("count")>0) { "Unlock or import your DNA first." } + markDataChanged() withContext(Dispatchers.Default) { Core.arr("session_analyze",json("session" to session,"studies" to JSONArray().put(study),"now" to Instant.now().toString())) } refreshResults() if(results.none { it.optInt("studyId")==study.optInt("id") }) status="No matching called risk variant in this study" } fun runAll() = run("Analyzing catalog on device") { - require(metadata.optInt("count")>0) { "Import your DNA first." } + require(dataUnlocked && metadata.optInt("count")>0) { "Unlock or import your DNA first." } + markDataChanged() var offset=0 while(true) { ensureActiveTask() @@ -139,26 +283,29 @@ class ExplorerModel(app: Application) : AndroidViewModel(app) { refreshResults() } private suspend fun ensureActiveTask() { currentCoroutineContext().ensureActive() } - fun clear() { task?.cancel();Core.call("session_close",json("session" to session));session=(Core.call("session_create") as Number).toLong();metadata=JSONObject();results=emptyList();messages.clear();report="";reportQuestions=emptyList() } + fun clear(){lockData()} fun exportResults(): String = Core.call("session_export",json("session" to session)) as String fun importResults(content: String, name: String) = run("Importing results") { importResultsData(content, name) } - suspend fun importResultsData(content: String, name: String) { withContext(Dispatchers.Default){Core.call("session_import_results",json("session" to session,"content" to content,"fileName" to name,"now" to Instant.now().toString()))};refreshResults() } - suspend fun sealedVault(password: String): String = withContext(Dispatchers.Default) { - require(password.length>=8) { "Use a passphrase with at least eight characters." } - val snapshot=Core.call("session_snapshot",json("session" to session)) as String - Core.obj("seal",json("plaintext" to snapshot,"password" to password,"salt" to DeviceStore.entropy(16),"iv" to DeviceStore.entropy(12),"iterations" to 600000)).toString() + suspend fun importResultsData(content: String, name: String) { unlockData();markDataChanged();withContext(Dispatchers.Default){Core.call("session_import_results",json("session" to session,"content" to content,"fileName" to name,"now" to Instant.now().toString()))};refreshResults() } + suspend fun sealedVault(password:String):String {unlockData();flushData();return dataVault.backup(password)} + fun saveVault(password:String)=run("Saving data securely"){unlockData();dataDirty=true;flushData()} + fun openVault(password:String,imported:String?=null)=run("Unlocking saved data"){openVaultData(password,imported)} + suspend fun openVaultData(password:String,imported:String?=null) { + val legacy=imported ?: getApplication().openFileInput("vault.json").bufferedReader().use{it.readText()} + val archive=JSONObject(legacy) + if(archive.optInt("version")==2) { + val custom=dataVault.restore(session,archive,password,{requireNotNull(authenticate).invoke()}) + restoreCustomization(custom);dataUnlocked=true;dataDirty=false + } else { + unlockData() + val snapshot=withContext(Dispatchers.Default){Core.call("open",archive.put("password",password)) as String} + Core.call("session_restore",json("session" to session,"snapshot" to snapshot));markDataChanged();flushData() + } + metadata=Core.obj("session_metadata",json("session" to session));refreshResults();storageMessage="Saved on device • ${dataVault.protection}" } - fun saveVault(password: String) = run("Encrypting vault") { val encrypted=sealedVault(password);withContext(Dispatchers.IO){getApplication().openFileOutput("vault.json",0).use{it.write(encrypted.toByteArray())}} } - fun openVault(password: String, imported: String? = null) = run("Unlocking vault") { openVaultData(password, imported) } - suspend fun openVaultData(password: String, imported: String? = null) { - val encrypted=imported ?: withContext(Dispatchers.IO){getApplication().openFileInput("vault.json").bufferedReader().use{it.readText()}} - metadata=withContext(Dispatchers.Default){ - val input=JSONObject(encrypted).put("password",password) - val snapshot=Core.call("open",input) as String - Core.obj("session_restore",json("session" to session,"snapshot" to snapshot)) - };refreshResults() + fun deleteVault()=run("Deleting saved data"){ + autosave?.cancelAndJoin();syncJob?.cancelAndJoin();dataVault.delete();getApplication().deleteFile("vault.json");dataDirty=false;wipeMemory();storageMessage="Local saved data deleted." } - fun deleteVault(){getApplication().deleteFile("vault.json");clear()} fun beginAuth(): String { val pair=Core.obj("auth_keypair",json("entropy" to DeviceStore.entropy(32))) val state=DeviceStore.entropy(32).replace("+","-").replace("/","_").trimEnd('=') @@ -178,7 +325,7 @@ class ExplorerModel(app: Application) : AndroidViewModel(app) { subscription=api("/api/check-subscription",json("walletAddress" to wallet)) } val billing = PlayBilling(app, viewModelScope, { wallet }, { path, body -> api(path,body) }, ::refreshSubscription) - override fun onCleared() { billing.close(); Core.call("session_close",json("session" to session)); super.onCleared() } + override fun onCleared() { autosave?.cancel();syncJob?.cancel();billing.close(); Core.call("session_close",json("session" to session)); super.onCleared() } fun signOut(){store.remove("auth-token");store.remove("wallet");store.remove("pending-auth");wallet="";subscription=null} fun refreshSubscription() = run("Checking subscription") { require(wallet.isNotBlank()){ "Sign in first" };subscription=api("/api/check-subscription",json("walletAddress" to wallet)) } private suspend fun requireAccess(kind: String) { diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt index fa29bff..8ab787c 100644 --- a/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/MainActivity.kt @@ -3,7 +3,7 @@ package com.monadicdna.explorer import android.content.Intent import android.net.Uri import android.os.Bundle -import androidx.activity.ComponentActivity +import androidx.fragment.app.FragmentActivity import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.compose.setContent @@ -29,13 +29,19 @@ import androidx.lifecycle.ViewModelProvider import org.json.JSONObject import java.io.ByteArrayOutputStream -class MainActivity: ComponentActivity() { +class MainActivity: FragmentActivity() { + private lateinit var deviceAuthentication:DeviceAuthentication private val model by lazy { ViewModelProvider(this)[ExplorerModel::class.java] } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + window.addFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE) + deviceAuthentication=DeviceAuthentication(this) + val weak=java.lang.ref.WeakReference(deviceAuthentication) + model.authenticate={requireNotNull(weak.get()){ "Open the app to unlock saved data." }.authenticate()} intent?.data?.takeIf{it.scheme=="monadicexplorer"&&it.host=="auth"}?.let(model::receiveAuth) setContent { VaultTheme { ExplorerApp(model) } } } + override fun onStop() { super.onStop(); if(!deviceAuthentication.active && !isChangingConfigurations) model.backgroundLock() } override fun onResume() { super.onResume(); if(model.wallet.isNotBlank()) model.billing.restore() } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent);setIntent(intent);intent.data?.takeIf{it.scheme=="monadicexplorer"&&it.host=="auth"}?.let(model::receiveAuth) } } @@ -71,9 +77,14 @@ private fun readDocument(context: android.content.Context, uri: Uri, max: Int=15 bottomBar={NavigationBar(containerColor=MaterialTheme.colorScheme.background) { listOf("Home","Browse","Results","Chat","More").forEachIndexed{index,name->NavigationBarItem(selected=tab==name,onClick={tab=name},label={Text(name)},icon={Icon(when(index){0->Icons.Default.Home;1->Icons.Default.Search;2->Icons.AutoMirrored.Filled.List;3->Icons.AutoMirrored.Filled.Chat;else->Icons.Default.MoreHoriz},contentDescription=name)})} }} ){padding-> Column(Modifier.padding(padding).fillMaxSize()){ + Row(Modifier.fillMaxWidth().padding(horizontal=16.dp),horizontalArrangement=Arrangement.SpaceBetween){ + Text(model.storageMessage,Modifier.weight(1f),style=MaterialTheme.typography.bodySmall) + if(model.dataUnlocked) TextButton(onClick=model::lockData,enabled=!model.busy){Text("Lock data")} + else TextButton(onClick=model::unlockSavedData,enabled=!model.busy){Text("Unlock data")} + } if(model.busy){LinearProgressIndicator(Modifier.fillMaxWidth());Row(Modifier.padding(horizontal=16.dp),horizontalArrangement=Arrangement.SpaceBetween){Text(model.status,Modifier.weight(1f));TextButton(onClick=model::cancel){Text("Cancel")}}} model.error?.let{message->Card(Modifier.padding(12.dp)){Column(Modifier.padding(12.dp)){Text(message,color=MaterialTheme.colorScheme.error);TextButton(onClick={model.error=null}){Text("Dismiss")}}}} - when(tab){ + if(model.locking){Text("Your data is protected",Modifier.padding(24.dp))} else when(tab){ "Home"->ScreenColumn{ VaultHero() Button(onClick={tab="Vault"}){Text("Import your DNA")} @@ -154,26 +165,37 @@ private fun readDocument(context: android.content.Context, uri: Uri, max: Int=15 } @Composable private fun ReportScreen(model: ExplorerModel,export: ()->Unit){ScreenColumn{VaultArt(R.drawable.vault_discover);Text("Genetic research reports",style=MaterialTheme.typography.headlineMedium);Consent(model);listOf("Overview","Health","Healthspan","Top traits").forEach{kind->OutlinedButton(onClick={model.generateReport(kind)},enabled=!model.busy&&model.results.isNotEmpty()){Text("Generate $kind")}};if(model.report.isNotEmpty()){Text(model.reportTitle,style=MaterialTheme.typography.titleLarge);Text(model.report);Button(onClick=export){Text("Export report")};model.reportQuestions.forEach{question->OutlinedButton(onClick={model.sendChat(question)},enabled=!model.busy){Text(question)}}}}} -@Composable private fun VaultScreen(model: ExplorerModel,importDNA: ()->Unit,export: (String,String)->Unit){ - var password by remember{mutableStateOf("")};var confirmDelete by remember{mutableStateOf(false)} +@Composable private fun VaultScreen(model:ExplorerModel,importDNA:()->Unit,export:(String,String)->Unit){ + var password by remember{mutableStateOf("")};var confirm by remember{mutableStateOf("")} val context=LocalContext.current - val importVault=rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()){uri->if(uri!=null)model.run("Reading encrypted vault"){ - val sealed=kotlinx.coroutines.withContext(kotlinx.coroutines.Dispatchers.IO){readDocument(context,uri).toString(Charsets.UTF_8)} - val pass=password;password="";model.openVaultData(pass,sealed) + val importBackup=rememberLauncherForActivityResult(ActivityResultContracts.OpenDocument()){uri->if(uri!=null)model.run("Restoring encrypted backup"){ + val bytes=kotlinx.coroutines.withContext(kotlinx.coroutines.Dispatchers.IO){readDocument(context,uri)} + val pass=password;password="";model.openVaultData(pass,bytes.toString(Charsets.UTF_8)) }} ScreenColumn{ VaultArt(R.drawable.vault_vault) - Text("Private on-device vault",style=MaterialTheme.typography.headlineMedium) - Text("${model.metadata.optInt("count")} variants • ${model.results.size} results. DNA is held in memory until you explicitly save an encrypted vault.") + Text("Private on-device data",style=MaterialTheme.typography.headlineMedium) + Text("DNA, results and customization save automatically while unlocked. Unlock with your device authentication. Locking clears decrypted data from this app's memory.") + Text(model.storageMessage) Row{Checkbox(checked=model.acceptedDisclaimer,onCheckedChange={model.acceptedDisclaimer=it});Text("I understand this is educational research, not medical advice.",style=MaterialTheme.typography.bodySmall)} - Button(onClick=importDNA,enabled=model.acceptedDisclaimer&&!model.busy){Text("Import raw DNA (.txt, .tsv, .csv, .gz)")} - OutlinedTextField(value=password,onValueChange={password=it},label={Text("Vault passphrase")},visualTransformation=PasswordVisualTransformation(),modifier=Modifier.fillMaxWidth()) - Row{Button(onClick={val p=password;password="";model.saveVault(p)},enabled=!model.busy&&password.length>=8){Text("Save")};Spacer(Modifier.width(10.dp));OutlinedButton(onClick={val p=password;password="";model.openVault(p)},enabled=!model.busy&&password.isNotEmpty()){Text("Unlock")};TextButton(onClick=model::clear){Text("Lock")}} - OutlinedButton(onClick={val p=password;password="";model.run("Encrypting portable backup"){val data=model.sealedVault(p);export("monadic-vault.json",data)}},enabled=!model.busy&&password.length>=8){Text("Export encrypted portable vault")} - OutlinedButton(onClick={importVault.launch(arrayOf("application/json","text/*","application/octet-stream"))},enabled=!model.busy&&password.isNotEmpty()){Text("Import portable vault using this passphrase")} - TextButton(onClick={confirmDelete=true}){Text("Delete local vault and clear memory")} + Button(onClick={model.run("Preparing secure import"){model.unlockData();importDNA()}},enabled=model.acceptedDisclaimer&&!model.busy){Text("Import raw DNA (.txt, .tsv, .csv, .gz)")} + if(!model.dataUnlocked) OutlinedButton(onClick=model::unlockSavedData,enabled=!model.busy){Text("Unlock saved data")} + else OutlinedButton(onClick=model::lockData,enabled=!model.busy){Text("Lock and clear decrypted data")} + Text("Recovery and encrypted sync",style=MaterialTheme.typography.titleLarge) + Text("Use a long, unique recovery passphrase (at least 12 characters). It protects exported backups and lets your other devices unlock encrypted cloud data. Keep it safe; we cannot recover it for you.") + OutlinedTextField(value=password,onValueChange={password=it},label={Text("Recovery passphrase")},visualTransformation=PasswordVisualTransformation(),modifier=Modifier.fillMaxWidth()) + OutlinedButton(onClick={val pass=password;password="";model.run("Exporting encrypted backup"){export("monadic-vault.json",model.sealedVault(pass))}},enabled=!model.busy&&model.dataUnlocked&&password.length>=12){Text("Export encrypted backup")} + OutlinedButton(onClick={importBackup.launch(arrayOf("application/json","text/*","application/octet-stream"))},enabled=!model.busy&&password.isNotEmpty()){Text("Restore encrypted backup (replaces device data)")} + OutlinedButton(onClick={val pass=password;password="";model.enableSync(pass)},enabled=!model.busy&&model.dataUnlocked&&model.wallet.isNotBlank()&&password.length>=12){Text("Enable encrypted sync")} + OutlinedButton(onClick=model::syncNow,enabled=!model.busy&&model.dataUnlocked&&model.wallet.isNotBlank()){Text("Sync now")} + OutlinedButton(onClick={confirm="cloudRestore"},enabled=!model.busy&&model.wallet.isNotBlank()&&password.isNotEmpty()){Text("Restore cloud copy (replaces device data)")} + TextButton(onClick=model::disableSync,enabled=model.dataUnlocked && !model.syncing && !model.locking&&!model.busy){Text("Disable sync on this device")} + TextButton(onClick={confirm="cloudDelete"},enabled=model.dataUnlocked && !model.syncing && !model.locking&&!model.busy&&model.wallet.isNotBlank()){Text("Delete cloud copy")} + Text("Sync is optional and requires sign-in. Only encrypted data is uploaded. Hardware keys stay on each device; the recovery passphrase is never sent to the server.",style=MaterialTheme.typography.bodySmall) + TextButton(onClick={confirm="localDelete"},enabled=!model.busy){Text("Delete data from this device")} + if(java.io.File(context.filesDir,"vault.json").exists())OutlinedButton(onClick={val pass=password;password="";model.openVault(pass)},enabled=password.isNotEmpty()&&!model.busy){Text("Migrate previous saved vault")} } - if(confirmDelete)AlertDialog(onDismissRequest={confirmDelete=false},title={Text("Delete this device's vault?")},text={Text("This deletes the encrypted local copy and clears in-memory data. Exported backups are unaffected.")},confirmButton={TextButton(onClick={model.deleteVault();confirmDelete=false}){Text("Delete")}},dismissButton={TextButton(onClick={confirmDelete=false}){Text("Cancel")}}) + if(confirm.isNotEmpty())AlertDialog(onDismissRequest={confirm=""},title={Text(if(confirm=="cloudRestore")"Replace device data?" else "Delete encrypted data?")},text={Text(when(confirm){"cloudRestore"->"The cloud copy will replace DNA, results and customization on this device. Export a backup first if you want to retain local changes.";"cloudDelete"->"Delete the account's encrypted cloud copy. Other devices retain their local copies.";else->"Delete this device's encrypted data and its device wrapping key. Cloud copies and exported backups remain."})},confirmButton={TextButton(onClick={val action=confirm;confirm="";when(action){"cloudRestore"->{val pass=password;password="";model.restoreCloud(pass)};"cloudDelete"->model.deleteCloud();else->model.deleteVault()}}){Text("Confirm")}},dismissButton={TextButton(onClick={confirm=""}){Text("Cancel")}}) } @Composable private fun SettingsScreen(model: ExplorerModel){ScreenColumn{ @@ -186,16 +208,17 @@ private fun readDocument(context: android.content.Context, uri: Uri, max: Int=15 if(model.provider=="ollama"){OutlinedTextField(value=model.ollamaAddress,onValueChange={model.ollamaAddress=it},label={Text("Ollama hostname")});OutlinedTextField(value=model.ollamaPort,onValueChange={model.ollamaPort=it},label={Text("Ollama port")})} if(model.provider=="nilai")Text("Leave the key blank to use one-use backend delegation. Prompts go directly from this device to nilAI; only your public key visits the backend.",style=MaterialTheme.typography.bodySmall) Text("Optional personalization",style=MaterialTheme.typography.titleLarge) + if(!model.dataUnlocked) {Text("Unlock saved data to view or edit customization.");OutlinedButton(onClick=model::unlockSavedData,enabled=!model.busy){Text("Unlock customization")}} model.profileSchema.forEach { field -> val key=field.getString("key") if(field.getString("type")=="select") { Text(field.getString("label")) Row(Modifier.horizontalScroll(rememberScrollState())) { field.getJSONArray("options").objects().forEach { option -> - FilterChip(selected=model.profileFields[key]==option.getString("value"),onClick={model.profileFields[key]=option.getString("value")},label={Text(option.getString("label"))}) + FilterChip(enabled=model.dataUnlocked && !model.syncing && !model.locking,selected=model.profileFields[key]==option.getString("value"),onClick={model.profileFields[key]=option.getString("value")},label={Text(option.getString("label"))}) } } - } else OutlinedTextField(value=model.profileFields[key].orEmpty(),onValueChange={model.profileFields[key]=it},label={Text(field.getString("label"))},modifier=Modifier.fillMaxWidth()) + } else OutlinedTextField(value=model.profileFields[key].orEmpty(),onValueChange={model.profileFields[key]=it},enabled=model.dataUnlocked && !model.syncing && !model.locking,label={Text(field.getString("label"))},modifier=Modifier.fillMaxWidth()) } - OutlinedTextField(value=model.profile,onValueChange={model.profile=it},label={Text("Optional personalization context")},modifier=Modifier.fillMaxWidth()) + OutlinedTextField(value=model.profile,onValueChange={model.profile=it},enabled=model.dataUnlocked && !model.syncing && !model.locking,label={Text("Optional personalization context")},modifier=Modifier.fillMaxWidth()) Button(onClick={model.run("Saving settings"){model.settingsSaved()}},enabled=!model.busy){Text("Save securely")} }} diff --git a/apps/android/app/src/main/java/com/monadicdna/explorer/SecureDataVault.kt b/apps/android/app/src/main/java/com/monadicdna/explorer/SecureDataVault.kt new file mode 100644 index 0000000..612cf86 --- /dev/null +++ b/apps/android/app/src/main/java/com/monadicdna/explorer/SecureDataVault.kt @@ -0,0 +1,177 @@ +package com.monadicdna.explorer + +import android.content.Context +import android.os.Build +import android.security.keystore.KeyGenParameterSpec +import android.security.keystore.KeyInfo +import android.security.keystore.KeyProperties +import android.security.keystore.StrongBoxUnavailableException +import android.util.AtomicFile +import android.util.Base64 +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock +import kotlinx.coroutines.withContext +import org.json.JSONObject +import java.io.File +import java.security.KeyStore +import java.security.SecureRandom +import java.util.UUID +import javax.crypto.Cipher +import javax.crypto.KeyGenerator +import javax.crypto.SecretKey +import javax.crypto.SecretKeyFactory +import javax.crypto.spec.GCMParameterSpec + +interface VaultKeyProtector { + val description: String + fun wrap(key: ByteArray, id: String): JSONObject + fun unwrap(value: JSONObject, id: String): ByteArray + fun delete() +} +class HardwareVaultKey(private val context:Context):VaultKeyProtector { + private val alias="monadic-explorer-vault-v2" + private fun existing()=KeyStore.getInstance("AndroidKeyStore").apply{load(null)}.getKey(alias,null) as? SecretKey + private fun key():SecretKey { + existing()?.let{return it} + fun create(strongBox:Boolean):SecretKey { + val builder=KeyGenParameterSpec.Builder(alias,KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT) + .setKeySize(256).setBlockModes(KeyProperties.BLOCK_MODE_GCM).setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE) + .setUserAuthenticationRequired(true) + if(Build.VERSION.SDK_INT>=30) builder.setUserAuthenticationParameters(30,KeyProperties.AUTH_BIOMETRIC_STRONG or KeyProperties.AUTH_DEVICE_CREDENTIAL) + else builder.setUserAuthenticationValidityDurationSeconds(30) + if(Build.VERSION.SDK_INT>=28) builder.setIsStrongBoxBacked(strongBox) + return KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES,"AndroidKeyStore").apply{init(builder.build())}.generateKey() + } + if(Build.VERSION.SDK_INT>=28 && context.packageManager.hasSystemFeature("android.hardware.strongbox_keystore")) { + try {return create(true)} catch(_:StrongBoxUnavailableException) { /* Use the device TEE when StrongBox is unavailable. */ } + } + return create(false) + } + override val description:String get() { + val key=existing() ?: return "Android Keystore; StrongBox preferred" + val info=SecretKeyFactory.getInstance(key.algorithm,"AndroidKeyStore").getKeySpec(key,KeyInfo::class.java) as KeyInfo + return if(Build.VERSION.SDK_INT>=31) when(info.securityLevel){KeyProperties.SECURITY_LEVEL_STRONGBOX->"StrongBox hardware";KeyProperties.SECURITY_LEVEL_TRUSTED_ENVIRONMENT->"Trusted hardware";else->"Android Keystore (software-backed)"} + else if(info.isInsideSecureHardware) "Trusted hardware" else "Android Keystore (software-backed)" + } + override fun wrap(key:ByteArray,id:String):JSONObject { + val cipher=Cipher.getInstance("AES/GCM/NoPadding").apply{init(Cipher.ENCRYPT_MODE,this@HardwareVaultKey.key());updateAAD("Explorer vault key v2|$id".toByteArray())} + return json("nonce" to encode(cipher.iv),"ciphertext" to encode(cipher.doFinal(key))) + } + override fun unwrap(value:JSONObject,id:String):ByteArray { + // Missing/inaccessible keys are errors. Never silently generate a replacement key for saved data. + val key=existing() ?: error("The device key is unavailable. Restore an encrypted backup or cloud copy using your recovery passphrase.") + val cipher=Cipher.getInstance("AES/GCM/NoPadding").apply{init(Cipher.DECRYPT_MODE,key,GCMParameterSpec(128,decode(value.getString("nonce"))));updateAAD("Explorer vault key v2|$id".toByteArray())} + return cipher.doFinal(decode(value.getString("ciphertext"))) + } + override fun delete(){KeyStore.getInstance("AndroidKeyStore").apply{load(null)}.deleteEntry(alias)} +} +internal fun encode(bytes:ByteArray)=Base64.encodeToString(bytes,Base64.NO_WRAP) +internal fun decode(value:String)=Base64.decode(value,Base64.NO_WRAP) +internal fun randomBytes(count:Int)=ByteArray(count).also{SecureRandom().nextBytes(it)} + +/** Atomic ciphertext-only storage. Device wrapping keys are never included in portable/cloud archives. */ +class SecureDataVault( + context:Context, + private val protector:VaultKeyProtector=HardwareVaultKey(context), + directory:File=File(context.noBackupFilesDir,"protected-data") +) { + private val file=AtomicFile(File(directory,"vault-v2.json")) + private val mutex=Mutex() + private var key:ByteArray?=null + private var record:JSONObject?=null + val exists get()=file.baseFile.exists() || File(file.baseFile.path+".bak").exists() + val protection get()=protector.description + private fun authenticatedRecord():JSONObject { + val value=JSONObject(file.openRead().bufferedReader().use{it.readText()}) + val id=value.getJSONObject("envelope").getString("vaultId") + val opened=protector.unwrap(value.getJSONObject("deviceKey"),id) + try {Core.call("vault_record_verify",json("key" to encode(opened),"record" to value));key?.fill(0);key=opened;record=value;return value} + catch(error:Exception){opened.fill(0);throw error} + } + private fun write(value:JSONObject) { + value.remove("mac") + value.put("mac",Core.call("vault_record_mac",json("key" to encode(requireNotNull(key)),"record" to value))) + file.baseFile.parentFile!!.mkdirs() + val stream=file.startWrite() + try{stream.write(value.toString().toByteArray());file.finishWrite(stream)}catch(error:Exception){file.failWrite(stream);throw error} + record=value + } + suspend fun unlock(session:Long,authenticate:suspend()->Unit):JSONObject { + authenticate() + return withContext(Dispatchers.IO){mutex.withLock { + if(exists) { + val value=authenticatedRecord() + try{Core.restorePersisted(session,requireNotNull(key),value.getJSONObject("envelope").toString());Core.obj("session_customization",json("session" to session))} + catch(error:Exception){key?.fill(0);key=null;record=null;throw error} + } else { + key=randomBytes(32) + val id=UUID.randomUUID().toString() + val initial=Core.persistSession(session,requireNotNull(key),id,1,randomBytes(12),json("fields" to JSONObject(),"context" to "").toString()) + write(json("version" to 2,"deviceKey" to protector.wrap(requireNotNull(key),id),"envelope" to initial,"sync" to json("enabled" to false,"revision" to 0,"dirty" to false))) + json("fields" to JSONObject(),"context" to "") + } + }} + } + suspend fun save(session:Long,customization:JSONObject)=withContext(Dispatchers.IO){mutex.withLock { + val current=JSONObject(requireNotNull(record){"Unlock your saved data first."}.toString()) + val envelope=current.getJSONObject("envelope") + current.put("envelope",Core.persistSession(session,requireNotNull(key),envelope.getString("vaultId"),envelope.getLong("revision")+1,randomBytes(12),customization.toString())) + current.getJSONObject("sync").put("dirty",true) + write(current) + }} + suspend fun lock()=withContext(Dispatchers.IO){mutex.withLock{key?.fill(0);key=null;record=null}} + suspend fun delete()=withContext(Dispatchers.IO){mutex.withLock{file.delete();check(!exists){"Unable to delete saved data."};protector.delete();key?.fill(0);key=null;record=null}} + suspend fun backup(password:String):String=withContext(Dispatchers.Default){mutex.withLock { + val current=requireNotNull(record){"Unlock your saved data first."} + val wrapped=Core.obj("vault_wrap_key",json("key" to encode(requireNotNull(key)),"vaultId" to current.getJSONObject("envelope").getString("vaultId"),"password" to password,"salt" to encode(randomBytes(16)),"nonce" to encode(randomBytes(12)))) + authenticatedArchive(json("version" to 2,"envelope" to current.getJSONObject("envelope"),"wrappedKey" to wrapped)).toString() + }} + suspend fun restore(session:Long,archive:JSONObject,password:String,authenticate:suspend()->Unit,allowOlder:Boolean=false):JSONObject { + authenticate() + return withContext(Dispatchers.Default){mutex.withLock { + val envelope=archive.getJSONObject("envelope");val wrapped=archive.getJSONObject("wrappedKey") + check(envelope.getString("vaultId")==wrapped.getString("vaultId")){"Recovery key belongs to a different vault."} + val recovered=decode(Core.call("vault_unwrap_key",json("wrappedKey" to wrapped,"password" to password)) as String) + val temporary=(Core.call("session_create") as Number).toLong() + try { + Core.call("vault_record_verify",json("key" to encode(recovered),"record" to archive)) + Core.restorePersisted(temporary,recovered,envelope.toString()) // Validate all data before replacing disk or the active session. + if(!allowOlder && record?.getJSONObject("envelope")?.getString("vaultId")==envelope.getString("vaultId")) check(envelope.getLong("revision")>=record!!.getJSONObject("envelope").getLong("revision")){"This backup is older than this device's saved data."} + val replacement=json("version" to 2,"deviceKey" to protector.wrap(recovered,envelope.getString("vaultId")),"envelope" to envelope,"wrappedKey" to wrapped,"sync" to json("enabled" to false,"revision" to 0,"dirty" to false)) + val previous=key;key=recovered + try{write(replacement)}catch(error:Exception){key=previous;throw error} + previous?.fill(0) + Core.restorePersisted(session,recovered,envelope.toString()) + Core.obj("session_customization",json("session" to session)) + } finally {if(key!==recovered)recovered.fill(0);Core.call("session_close",json("session" to temporary))} + }} + } + suspend fun syncConfiguration():JSONObject?=mutex.withLock{record?.optJSONObject("sync")?.let{JSONObject(it.toString())}} + suspend fun enableSync(wallet:String,password:String)=withContext(Dispatchers.Default){mutex.withLock { + val current=JSONObject(requireNotNull(record){"Unlock your saved data first."}.toString()) + current.put("wrappedKey",Core.obj("vault_wrap_key",json("key" to encode(requireNotNull(key)),"vaultId" to current.getJSONObject("envelope").getString("vaultId"),"password" to password,"salt" to encode(randomBytes(16)),"nonce" to encode(randomBytes(12))))) + current.put("sync",json("enabled" to true,"wallet" to wallet.lowercase(),"revision" to 0,"dirty" to true)) + write(current) + }} + private fun authenticatedArchive(value:JSONObject):JSONObject {value.put("mac",Core.call("vault_record_mac",json("key" to encode(requireNotNull(key)),"record" to value)));return value} + suspend fun archive():JSONObject=mutex.withLock{val current=requireNotNull(record);JSONObject(authenticatedArchive(json("version" to 2,"envelope" to current.getJSONObject("envelope"),"wrappedKey" to current.getJSONObject("wrappedKey"))).toString())} + suspend fun synced(revision:Long,uploadedRevision:Long)=withContext(Dispatchers.IO){mutex.withLock{val current=JSONObject(requireNotNull(record).toString());current.getJSONObject("sync").put("revision",revision).put("dirty",current.getJSONObject("envelope").getLong("revision")!=uploadedRevision);write(current)}} + suspend fun enableExistingSync(wallet:String,revision:Long)=withContext(Dispatchers.IO){mutex.withLock{val current=JSONObject(requireNotNull(record).toString());current.put("sync",json("enabled" to true,"wallet" to wallet.lowercase(),"revision" to revision,"dirty" to false));write(current)}} + suspend fun disableSync()=withContext(Dispatchers.IO){mutex.withLock{val current=JSONObject(requireNotNull(record).toString());current.getJSONObject("sync").put("enabled",false);write(current)}} + suspend fun genotypeDigest():String?=mutex.withLock{record?.getJSONObject("envelope")?.optString("genotypeDigest")} + suspend fun acceptCloud(session:Long,archive:JSONObject,revision:Long)=withContext(Dispatchers.Default){mutex.withLock{ + val current=JSONObject(requireNotNull(record).toString());val envelope=archive.getJSONObject("envelope") + if(!envelope.has("genotype") && envelope.optString("genotypeDigest")==current.getJSONObject("envelope").optString("genotypeDigest"))envelope.put("genotype",current.getJSONObject("envelope").getJSONObject("genotype")) + check(envelope.getString("vaultId")==current.getJSONObject("envelope").getString("vaultId")){"This cloud vault needs its recovery passphrase on this device."} + val temporary=(Core.call("session_create") as Number).toLong() + try { + Core.call("vault_record_verify",json("key" to encode(requireNotNull(key)),"record" to archive)) + Core.restorePersisted(temporary,requireNotNull(key),envelope.toString()) + current.put("envelope",envelope).put("wrappedKey",archive.getJSONObject("wrappedKey")) + current.getJSONObject("sync").put("revision",revision).put("dirty",false) + write(current);Core.restorePersisted(session,requireNotNull(key),envelope.toString()) + Core.obj("session_customization",json("session" to session)) + } finally {Core.call("session_close",json("session" to temporary))} + }} +} diff --git a/apps/ios/Explorer/Core.swift b/apps/ios/Explorer/Core.swift index 092bf2c..bc8bad7 100644 --- a/apps/ios/Explorer/Core.swift +++ b/apps/ios/Explorer/Core.swift @@ -9,6 +9,19 @@ enum Core { guard let metadata=envelope["value"] as? [String:Any] else{throw Failure(message:"Invalid import metadata")} return metadata } + static func sealSession(_ session:Int,_ key:Data,_ id:String,_ revision:Int,_ nonce:Data,_ customization:[String:Any]) throws -> [String:Any] { + let encoded=String(decoding:try JSONSerialization.data(withJSONObject:customization),as:UTF8.self) + let response=persistSession(session:UInt64(session),key:key,vaultId:id,revision:UInt64(revision),nonce:nonce,customization:encoded) + return try persistenceResponse(response) + } + static func restorePersisted(_ session:Int,_ key:Data,_ envelope:[String:Any]) throws { + let encoded=String(decoding:try JSONSerialization.data(withJSONObject:envelope),as:UTF8.self) + _=try persistenceResponse(restorePersistedSession(session:UInt64(session),key:key,encrypted:encoded)) + } + private static func persistenceResponse(_ response:String) throws -> [String:Any] { + guard let object=try JSONSerialization.jsonObject(with:Data(response.utf8)) as? [String:Any],object["ok"] as? Bool==true,let value=object["value"] as? [String:Any] else {throw Failure(message:"Unable to authenticate saved data")} + return value + } static func call(_ operation: String, _ input: Any = NSNull()) throws -> Any { let data = try JSONSerialization.data(withJSONObject: ["version":1,"operation":operation,"input":input], options: [.sortedKeys]) let response = coreCall(request: String(decoding:data,as:UTF8.self)) diff --git a/apps/ios/Explorer/ExplorerApp.swift b/apps/ios/Explorer/ExplorerApp.swift index b4db059..aa9104b 100644 --- a/apps/ios/Explorer/ExplorerApp.swift +++ b/apps/ios/Explorer/ExplorerApp.swift @@ -3,8 +3,11 @@ import UniformTypeIdentifiers @main struct ExplorerApp: App { @StateObject private var store=ExplorerStore() + @Environment(\.scenePhase) private var scenePhase init() { VaultStyle.configure() } - var body: some Scene { WindowGroup { ExplorerView().font(VaultStyle.body()).tint(VaultStyle.ink).preferredColorScheme(.light).environmentObject(store).onOpenURL{store.receiveAuth($0)} } } + var body: some Scene { WindowGroup { ExplorerView().font(VaultStyle.body()).tint(VaultStyle.ink).preferredColorScheme(.light).environmentObject(store).onOpenURL{store.receiveAuth($0)} + .overlay { if scenePhase != .active || store.locking { ZStack { Color("vault_offTone").ignoresSafeArea(); Label("Your data is protected",systemImage:"lock.shield").font(.headline) } } } + .onChange(of:scenePhase) { _, phase in if phase == .background { store.backgroundLock() } } } } } struct TextExport: FileDocument { @@ -28,6 +31,10 @@ struct ExplorerView: View { func export(_ name:String,_ text:String){exportName=name;exportDocument=TextExport(text);exporting=true} var body: some View { VStack(spacing:0){ + HStack { Text(store.storageMessage).font(.caption); Spacer(); + if store.dataUnlocked { Button("Lock data",action:store.lockData).disabled(store.busy) } + else { Button("Unlock data",action:store.unlockSavedData).disabled(store.busy) } + }.padding(.horizontal).padding(.vertical,8) if store.busy{HStack{ProgressView();Text(store.status).font(.custom("SpaceGrotesk-Regular",size:12,relativeTo:.caption));Spacer();Button("Cancel",action:store.cancel)}.padding()} TabView(selection:$selectedTab){ NavigationStack{HomeView(importDNA:{startImport("dna")},browse:{selectedTab=1})}.tabItem{Label("Home",systemImage:"house")}.tag(0) @@ -193,25 +200,40 @@ struct VaultView:View{ var importVault:()->Void var export:(String,String)->Void @State private var confirmDelete=false + @State private var confirmRestore=false + @State private var confirmCloudDelete=false var body:some View{Form{ VaultArt(name:"vault").listRowBackground(Color.clear) Section("On-device genetic data"){ - Text("\(store.variantCount) variants • \(store.results.count) results. Genetic data stays in memory until you explicitly save an encrypted vault.") + Text("DNA, results and customization are saved automatically in an encrypted vault after device authentication. Locking clears your decrypted session.") + Text(store.storageMessage) Toggle("I understand this is educational research, not medical advice.",isOn:$store.acceptedDisclaimer) Button("Import DNA (.txt, .tsv, .csv, .gz)",action:importDNA).disabled(!store.acceptedDisclaimer||store.busy) + Button(store.dataUnlocked ? "Lock saved data" : "Unlock saved data"){if store.dataUnlocked{store.lockData()}else{store.unlockSavedData()}}.disabled(store.busy) } - Section("Encrypted vault"){ - SecureField("Vault passphrase",text:$password).textContentType(.password) - Button("Save encrypted vault"){let p=password;password="";store.saveVault(p)}.disabled(password.count<8||store.busy) - Button("Unlock saved vault"){let p=password;password="";store.unlockVault(p)}.disabled(password.isEmpty||store.busy) - Button("Lock and clear memory",action:store.clear) + Section("Encrypted recovery and transfer"){ + Text("Use a unique recovery passphrase of at least 12 characters. Keep it somewhere safe: we cannot recover it. Device keys stay on their original devices.") + SecureField("Recovery passphrase",text:$password).textContentType(.password) Button("Export encrypted portable vault"){ let p=password;password="";store.work("Encrypting portable vault"){export("monadic-vault.json",try await store.encryptedVault(p))} - }.disabled(password.count<8||store.busy) - Button("Import portable vault using this passphrase",action:importVault).disabled(password.isEmpty||store.busy) - Button("Delete local vault",role:.destructive){confirmDelete=true} + }.disabled(password.count<12||store.busy) + Button("Import portable vault (replaces device data)",action:importVault).disabled(password.isEmpty||store.busy) + Button("Migrate previous saved vault"){let p=password;password="";store.unlockVault(p)}.disabled(password.isEmpty||store.busy) } - }.vaultScreen().navigationTitle("Private vault").confirmationDialog("Delete this device's vault and clear memory?",isPresented:$confirmDelete){Button("Delete",role:.destructive){do{try store.deleteVault()}catch{store.error=error.localizedDescription}}}} + Section("Optional encrypted multi-device sync"){ + Text("Sign in to the same Explorer account on each device. Only encrypted data and a passphrase-protected data key are uploaded. Concurrent edits require a choice before replacing data.") + Button("Enable encrypted sync"){let p=password;password="";store.enableSync(p)}.disabled(password.count<12||store.busy||store.wallet.isEmpty) + Button("Sync now",action:store.syncNow).disabled(store.busy||store.syncing) + Button("Restore cloud copy (replaces device data)"){confirmRestore=true}.disabled(password.isEmpty||store.busy||store.wallet.isEmpty) + Button("Disable sync on this device",action:store.disableSync).disabled(!store.dataUnlocked||store.busy) + Button("Delete encrypted cloud copy",role:.destructive){confirmCloudDelete=true}.disabled(!store.dataUnlocked||store.busy||store.wallet.isEmpty) + } + Button("Delete local vault",role:.destructive){confirmDelete=true}.disabled(store.busy) + }.vaultScreen().navigationTitle("Private vault") + .confirmationDialog("Delete this device's vault and clear memory? Cloud data is retained.",isPresented:$confirmDelete){Button("Delete",role:.destructive,action:store.deleteVault)} + .confirmationDialog("Replace device data with the cloud copy? Export a backup first to retain local changes.",isPresented:$confirmRestore){Button("Replace device data",role:.destructive){let p=password;password="";store.restoreCloud(p)}} + .confirmationDialog("Delete the cloud copy? Other devices will need to set up sync again.",isPresented:$confirmCloudDelete){Button("Delete cloud copy",role:.destructive,action:store.deleteCloud)} + } } struct SettingsView:View{ @@ -219,7 +241,7 @@ struct SettingsView:View{ var body:some View{Form{ Section("Research and account backend"){ TextField("HTTPS origin",text:$store.backend).keyboardType(.URL).autocorrectionDisabled().textInputAutocapitalization(.never) - Text("Your raw DNA remains on this device. The backend provides the public research catalog and account services.").font(.custom("SpaceGrotesk-Regular",size:13,relativeTo:.footnote)) + Text("DNA is processed on device. Optional sync uploads only encrypted vault data. The backend also provides research and account services.").font(.custom("SpaceGrotesk-Regular",size:13,relativeTo:.footnote)) } Section("LLM provider"){ Picker("Provider",selection:Binding(get:{store.provider},set:{store.selectProvider($0)})){Text("HuggingFace").tag("huggingface");Text("Ollama").tag("ollama");Text("nilAI").tag("nilai")} @@ -229,12 +251,14 @@ struct SettingsView:View{ if store.provider=="nilai"{Text("Leave the key blank for one-use backend delegation. Prompts go directly to nilAI; only your public key visits the backend.").font(.custom("SpaceGrotesk-Regular",size:13,relativeTo:.footnote))} } Section("Optional personalization"){ + if !store.dataUnlocked { Button("Unlock customization",action:store.unlockSavedData) } ForEach(store.profileSchema){field in let value=Binding(get:{store.profileFields[field.key] ?? ""},set:{store.profileFields[field.key]=$0}) - if let options=field.options{Picker(field.label,selection:value){ForEach(options){Text($0.label).tag($0.value)}}} - else{TextField(field.label,text:value,axis:.vertical)} + if let options=field.options{Picker(field.label,selection:value){ForEach(options){Text($0.label).tag($0.value)}}.disabled(!store.dataUnlocked || store.syncing || store.locking)} + else{TextField(field.label,text:value,axis:.vertical).disabled(!store.dataUnlocked || store.syncing || store.locking)} } - TextField("Additional context for reports",text:$store.profile,axis:.vertical) + TextField("Additional context for reports",text:$store.profile,axis:.vertical).disabled(!store.dataUnlocked || store.syncing || store.locking) + Text("Customization is saved automatically in the encrypted data vault.").font(.footnote) } Button("Save securely in Keychain"){do{try store.saveSettings()}catch{store.error=error.localizedDescription}} }.vaultScreen().navigationTitle("Settings")} diff --git a/apps/ios/Explorer/ExplorerStore.swift b/apps/ios/Explorer/ExplorerStore.swift index 2ae0d61..de67246 100644 --- a/apps/ios/Explorer/ExplorerStore.swift +++ b/apps/ios/Explorer/ExplorerStore.swift @@ -10,8 +10,8 @@ import UIKit @Published var apiKey=DeviceStore.get("api-key-"+(DeviceStore.get("provider").isEmpty ? "nilai":DeviceStore.get("provider"))) @Published var ollamaAddress=DeviceStore.get("ollama-address").isEmpty ? "localhost" : DeviceStore.get("ollama-address") @Published var ollamaPort=DeviceStore.get("ollama-port").isEmpty ? "11434" : DeviceStore.get("ollama-port") - @Published var profile=DeviceStore.get("profile") - @Published var profileFields:[String:String]=(try? JSONDecoder().decode([String:String].self,from:Data(DeviceStore.get("profile-fields").utf8))) ?? [:] + @Published var profile="" {didSet{customizationChanged()}} + @Published var profileFields:[String:String]=[:] {didSet{customizationChanged()}} var profileSchema:[ProfileField] { guard let fields=try? Core.call("profile_schema"),let data=try? JSONSerialization.data(withJSONObject:fields) else{return []} return (try? JSONDecoder().decode([ProfileField].self,from:data)) ?? [] @@ -36,12 +36,149 @@ import UIKit private var task:Task? let billing = StoreBilling() private(set) var session:Int - override init(){session=(try? Core.call("session_create") as? Int) ?? 0;super.init();billing.attach(self);Task { try? await billing.recover() }} + let dataVault:SecureDataVault + @Published private(set) var dataUnlocked=false + @Published private(set) var storageMessage="Your saved data is locked." + @Published private(set) var syncing=false + private var dataDirty=false + private var dataVersion=0 + private var lastCustomization=Data() + private var restoring=false + @Published private(set) var locking=false + private var autosave:Task? + private var lockTask:Task? + private var syncTask:Task? + private var syncAgain=false + init(dataVault:SecureDataVault){ + self.dataVault=dataVault;session=(try? Core.call("session_create") as? Int) ?? 0 + super.init();billing.attach(self);Task {try? await billing.recover()} + } + override convenience init(){self.init(dataVault:SecureDataVault())} + private func customization()->[String:Any]{["fields":profileFields,"context":profile]} + private func customizationChanged(){if dataUnlocked && !restoring {markDataChanged()}} + private func restoreCustomization(_ value:[String:Any]) { + restoring=true + profile=value["context"] as? String ?? "";profileFields=value["fields"] as? [String:String] ?? [:] + lastCustomization=(try? JSONSerialization.data(withJSONObject:customization(),options:.sortedKeys)) ?? Data() + restoring=false + } + func unlockData() async throws { + if let lockTask {await lockTask.value} + if dataUnlocked{return} + let existed=await dataVault.exists + restoreCustomization(try await dataVault.unlock(session)) + metadata=try Core.object("session_metadata",["session":session]);try refreshResults() + dataUnlocked=true;storageMessage="Saved on device • \(await dataVault.protection)" + if !existed { + let fields=(try? JSONSerialization.jsonObject(with:Data(DeviceStore.get("profile-fields").utf8))) as? [String:Any] ?? [:] + restoreCustomization(["fields":fields,"context":DeviceStore.get("profile")]) + dataDirty=true;try await flushData();try DeviceStore.put("profile","");try DeviceStore.put("profile-fields","") + } + queueSync() + } + func unlockSavedData(){work("Unlocking saved data"){try await self.unlockData()}} + private func markDataChanged(){ + dataDirty=true;dataVersion+=1;storageMessage="Saving securely…" + autosave?.cancel() + autosave=Task { + do {try await Task.sleep(nanoseconds:500_000_000);try Task.checkCancellation();try await flushData()} + catch is CancellationError {} catch {if dataUnlocked{storageMessage="Changes not saved. Please retry.";self.error=error.localizedDescription}} + } + } + func flushData() async throws { + guard dataUnlocked && dataDirty else{return} + let version=dataVersion;let custom=customization() + try await dataVault.save(session,custom) + lastCustomization=try JSONSerialization.data(withJSONObject:custom,options:.sortedKeys) + if version==dataVersion{dataDirty=false} + storageMessage=dataDirty ? "Saving securely…" : "Saved on device • \(await dataVault.protection)" + queueSync() + } + private func wipeMemory(){ + _=try? Core.call("session_close",["session":session]);session=(try? Core.call("session_create") as? Int) ?? 0 + dataUnlocked=false;dataDirty=false;metadata=[:];results=[];messages=[];report="";reportQuestions=[];selectedStudy=nil + restoreCustomization(["fields":[:],"context":""]) + } + func lockData(){ + guard !locking else{return};locking=true + let running=task;let pendingSave=autosave;let pendingSync=syncTask + lockTask=Task { + running?.cancel();await running?.value;pendingSave?.cancel();await pendingSave?.value;pendingSync?.cancel();await pendingSync?.value + do{try await flushData()}catch{self.error="Latest changes could not be saved. The previous encrypted copy is intact."} + await dataVault.lock();wipeMemory();storageMessage="Your saved data is locked.";locking=false + } + } + func backgroundLock(){if dataUnlocked{lockData()}} + private func queueSync(){ + guard dataUnlocked && !locking else{return} + if syncing{syncAgain=true;return} + if syncTask != nil {syncAgain=true;return} + syncTask=Task { + defer{syncing=false;syncTask=nil} + do {while busy {try await Task.sleep(nanoseconds:100_000_000)};try await Task.sleep(nanoseconds:1_000_000_000)} catch{return} + syncing=true + do{repeat{syncAgain=false;try await syncOnce()}while syncAgain} + catch is CancellationError {} catch{storageMessage="Saved on device. Sync needs attention.";self.error=error.localizedDescription} + } + } + private func syncOnce() async throws { + guard let config=await dataVault.configuration(),config["enabled"] as? Bool==true else{return} + guard !wallet.isEmpty,wallet.lowercased()==config["wallet"] as? String else{throw Core.Failure(message:"Sign in to the account used to enable sync")} + let observedVersion=dataVersion + let response=try await api("/api/vault-sync",["walletAddress":wallet,"action":"read","knownRevision":config["revision"] ?? 0,"knownGenotype":await dataVault.genotypeDigest() ?? ""]) + let revision=response["revision"] as? Int ?? 0;let base=config["revision"] as? Int ?? 0 + guard let latest=await dataVault.configuration(),latest["enabled"] as? Bool==true,latest["wallet"] as? String==config["wallet"] as? String else{return} + if revision==base { + if config["dirty"] as? Bool==true { + var archive=try await dataVault.archive();var envelope=archive["envelope"] as! [String:Any] + let uploaded=envelope["revision"] as! Int + if envelope["genotypeDigest"] as? String==response["genotypeDigest"] as? String {envelope.removeValue(forKey:"genotype");archive["envelope"]=envelope} + let result=try await api("/api/vault-sync",["walletAddress":wallet,"action":"write","baseRevision":base,"archive":archive]) + try await dataVault.synced(result["revision"] as! Int,uploaded) + } + } else { + if let cloud=response["archive"] as? [String:Any] { + let local=try await dataVault.archive() + if cloud["mac"] as? String==local["mac"] as? String { + try await dataVault.synced(revision,(local["envelope"] as! [String:Any])["revision"] as! Int);return + } + } + guard !dataDirty,observedVersion==dataVersion,!busy,latest["dirty"] as? Bool != true else{throw Core.Failure(message:"Another device has changes. Restore the cloud copy to replace device data, or export a backup before resolving this conflict.")} + guard let archive=response["archive"] as? [String:Any] else{throw Core.Failure(message:"The cloud copy was removed. Disable sync or set it up again explicitly.")} + restoreCustomization(try await dataVault.acceptCloud(session,archive,revision)) + metadata=try Core.object("session_metadata",["session":session]);try refreshResults() + } + storageMessage="Saved on device and encrypted sync is up to date." + } + func syncNow(){work("Syncing encrypted data"){try await self.unlockData();try await self.flushData();self.queueSync()}} + func enableSync(_ password:String){work("Setting up encrypted sync"){ + guard !self.wallet.isEmpty else{throw Core.Failure(message:"Sign in before enabling sync")} + try await self.unlockData();try await self.flushData();try await self.dataVault.enableSync(self.wallet,password);self.queueSync() + }} + func disableSync(){work("Disabling sync on this device"){try await self.dataVault.disableSync();self.storageMessage="Saved on device. Sync is disabled on this device."}} + func restoreCloud(_ password:String){work("Restoring encrypted cloud data"){ + guard !self.wallet.isEmpty else{throw Core.Failure(message:"Sign in to restore cloud data")} + let response=try await self.api("/api/vault-sync",["walletAddress":self.wallet,"action":"read"]) + guard let archive=response["archive"] as? [String:Any],let revision=response["revision"] as? Int else{throw Core.Failure(message:"No encrypted cloud copy exists for this account")} + self.restoreCustomization(try await self.dataVault.restore(self.session,archive,password,allowOlder:true)) + self.dataUnlocked=true;self.dataDirty=false;self.metadata=try Core.object("session_metadata",["session":self.session]);try self.refreshResults() + try await self.dataVault.enableExistingSync(self.wallet,revision);self.storageMessage="Restored encrypted cloud data and enabled sync." + }} + func deleteCloud(){work("Deleting cloud copy"){ + guard !self.wallet.isEmpty else{throw Core.Failure(message:"Sign in first")} + let response=try await self.api("/api/vault-sync",["walletAddress":self.wallet,"action":"read"]) + _=try await self.api("/api/vault-sync",["walletAddress":self.wallet,"action":"delete","baseRevision":response["revision"] ?? 0]) + try await self.dataVault.disableSync();self.storageMessage="Cloud copy deleted. The encrypted device copy is retained." + }} var variantCount:Int { metadata["count"] as? Int ?? 0 } func work(_ label:String,_ operation:@escaping @MainActor () async throws -> Void){ - guard !busy else{return} + guard !busy && !syncing && !locking else{return} busy=true;status=label;error=nil - task=Task { defer{busy=false};do{try await operation();status="Complete"}catch is CancellationError{status="Cancelled"}catch{self.error=error.localizedDescription} } + task=Task { + defer{busy=false} + do{try await operation();status="Complete"}catch is CancellationError{status="Cancelled"}catch{self.error=error.localizedDescription} + do{try await flushData()}catch{storageMessage="Changes not saved. Please retry.";self.error=error.localizedDescription} + } } func cancel(){task?.cancel()} func origin() throws -> String { @@ -69,8 +206,8 @@ import UIKit func saveSettings() throws { _=try origin() _=try profileData() - try DeviceStore.put("profile-fields",String(decoding:try JSONSerialization.data(withJSONObject:profileFields),as:UTF8.self)) - for (key,value) in [("backend",backend),("provider",provider),("model",model),("api-key-"+provider,apiKey),("ollama-address",ollamaAddress),("ollama-port",ollamaPort),("profile",profile)]{try DeviceStore.put(key,value)} + if dataUnlocked{markDataChanged()} + for (key,value) in [("backend",backend),("provider",provider),("model",model),("api-key-"+provider,apiKey),("ollama-address",ollamaAddress),("ollama-port",ollamaPort)]{try DeviceStore.put(key,value)} } func selectProvider(_ next:String){do{try DeviceStore.put("api-key-"+provider,apiKey);provider=next;apiKey=DeviceStore.get("api-key-"+next)}catch{self.error="Unable to switch secure provider settings"}} func browse(_ query:String,_ trait:String,semantic:Bool,offset:Int=0){work("Loading studies"){ @@ -86,6 +223,7 @@ import UIKit } func importDNA(_ url:URL){work("Importing DNA on device"){ guard self.acceptedDisclaimer else{throw Core.Failure(message:"Accept the educational-use disclaimer first")} + try await self.unlockData();self.markDataChanged() let data=try self.readFile(url);let session=self.session;let name=url.lastPathComponent let metadata=try await Task.detached{try Core.importFile(session,data,name)}.value try Task.checkCancellation();self.metadata=metadata @@ -93,13 +231,15 @@ import UIKit }} func refreshResults() throws{results=try Core.array("session_results",["session":session]).map(Record.init)} func analyze(_ record:Record){work("Matching DNA on device"){ - guard self.variantCount>0 else{throw Core.Failure(message:"Import your DNA first")} + guard self.dataUnlocked && self.variantCount>0 else{throw Core.Failure(message:"Unlock or import your DNA first")} + self.markDataChanged() let session=self.session;let input:[String:Any]=["session":session,"studies":[record.raw],"now":ISO8601DateFormatter().string(from:Date())] _=try await Task.detached{try Core.call("session_analyze",input)}.value try self.refreshResults() }} func runAll(){work("Analyzing catalog on device"){ - guard self.variantCount>0 else{throw Core.Failure(message:"Import your DNA first")} + guard self.dataUnlocked && self.variantCount>0 else{throw Core.Failure(message:"Unlock or import your DNA first")} + self.markDataChanged() var offset=0 while true{ try Task.checkCancellation() @@ -112,35 +252,38 @@ import UIKit } try self.refreshResults() }} - func clear(){task?.cancel();_ = try? Core.call("session_close",["session":session]);session=(try? Core.call("session_create") as? Int) ?? 0;metadata=[:];results=[];messages=[];report="";reportQuestions=[]} + func clear(){lockData()} func exportResults() throws -> String{try Core.string("session_export",["session":session])} func importResults(_ url:URL){work("Importing results"){ + try await self.unlockData();self.markDataChanged() let data=try self.readFile(url) _=try Core.call("session_import_results",["session":self.session,"content":String(decoding:data,as:UTF8.self),"fileName":url.lastPathComponent,"now":ISO8601DateFormatter().string(from:Date())]);try self.refreshResults() }} private var vaultURL:URL { FileManager.default.urls(for:.applicationSupportDirectory,in:.userDomainMask)[0].appendingPathComponent("monadic-vault.json") } func encryptedVault(_ password:String) async throws -> String { - guard password.count>=8 else{throw Core.Failure(message:"Use a passphrase with at least eight characters")} - let snapshot=try Core.string("session_snapshot",["session":session]);let salt=try DeviceStore.entropy(16);let iv=try DeviceStore.entropy(12) - let encrypted=try await Task.detached{try Core.object("seal",["plaintext":snapshot,"password":password,"salt":salt,"iv":iv,"iterations":600000])}.value - try Task.checkCancellation() - return String(decoding:try JSONSerialization.data(withJSONObject:encrypted),as:UTF8.self) - } - func saveVault(_ password:String){work("Encrypting vault"){ - let encrypted=try await self.encryptedVault(password);let url=self.vaultURL - try FileManager.default.createDirectory(at:url.deletingLastPathComponent(),withIntermediateDirectories:true) - try Data(encrypted.utf8).write(to:url,options:[.atomic,.completeFileProtection]) - var file=url;var resources=URLResourceValues();resources.isExcludedFromBackup=true;try file.setResourceValues(resources) - }} - func unlockVault(_ password:String,file:URL?=nil){work("Unlocking vault"){ + try await unlockData();try await flushData() + return String(decoding:try JSONSerialization.data(withJSONObject:await dataVault.backup(password)),as:UTF8.self) + } + func saveVault(_ password:String){work("Saving data securely"){try await self.unlockData();self.dataDirty=true;try await self.flushData()}} + func unlockVault(_ password:String,file:URL?=nil){work("Restoring encrypted data"){ let data=try file.map(self.readFile) ?? Data(contentsOf:self.vaultURL) guard var encrypted=try JSONSerialization.jsonObject(with:data) as? [String:Any] else{throw Core.Failure(message:"Invalid encrypted vault")} - encrypted["password"]=password;let session=self.session - let metadata=try await Task.detached{let snapshot=try Core.string("open",encrypted);return try Core.object("session_restore",["session":session,"snapshot":snapshot])}.value - try Task.checkCancellation();self.metadata=metadata - try self.refreshResults() + if encrypted["version"] as? Int==2 { + self.restoreCustomization(try await self.dataVault.restore(self.session,encrypted,password)) + self.dataUnlocked=true;self.dataDirty=false + } else { + try await self.unlockData();encrypted["password"]=password + let snapshot=try Core.string("open",encrypted);_=try Core.call("session_restore",["session":self.session,"snapshot":snapshot]);self.markDataChanged();try await self.flushData() + } + self.metadata=try Core.object("session_metadata",["session":self.session]);try self.refreshResults() + self.storageMessage="Saved on device • \(await self.dataVault.protection)" + }} + func deleteVault(){work("Deleting saved data"){ + self.autosave?.cancel();await self.autosave?.value;self.syncTask?.cancel();await self.syncTask?.value + try await self.dataVault.delete() + if FileManager.default.fileExists(atPath:self.vaultURL.path){try FileManager.default.removeItem(at:self.vaultURL)} + self.dataDirty=false;self.wipeMemory();self.storageMessage="Local saved data deleted." }} - func deleteVault() throws {if FileManager.default.fileExists(atPath:vaultURL.path){try FileManager.default.removeItem(at:vaultURL)};clear()} func beginAuth() throws { let pair=try Core.object("auth_keypair",["entropy":DeviceStore.entropy(32)]) let state=try DeviceStore.entropy(32).replacingOccurrences(of:"+",with:"-").replacingOccurrences(of:"/",with:"_").replacingOccurrences(of:"=",with:"") diff --git a/apps/ios/Explorer/Info.plist b/apps/ios/Explorer/Info.plist index 0c2f7b2..0d77f68 100644 --- a/apps/ios/Explorer/Info.plist +++ b/apps/ios/Explorer/Info.plist @@ -27,6 +27,8 @@ CFBundleVersion $(CURRENT_PROJECT_VERSION) + NSFaceIDUsageDescription + Authenticate to unlock your encrypted DNA, results and customization. NSAppTransportSecurity NSAllowsLocalNetworking diff --git a/apps/ios/Explorer/SecureDataVault.swift b/apps/ios/Explorer/SecureDataVault.swift new file mode 100644 index 0000000..bea4583 --- /dev/null +++ b/apps/ios/Explorer/SecureDataVault.swift @@ -0,0 +1,176 @@ +import Foundation +import Security +import LocalAuthentication + +protocol VaultKeyProtector: AnyObject { + var description: String { get } + func authenticate() async throws + func wrap(_ key:Data, id:String) throws -> [String:Any] + func unwrap(_ wrapped:[String:Any], id:String) throws -> Data + func reset() + func delete() throws +} +final class HardwareVaultKey: VaultKeyProtector { + private let tag=Data("com.monadicdna.explorer.vault-v2".utf8) + private var context:LAContext? + var description:String { "Secure Enclave with device authentication" } + func authenticate() async throws { + let context=LAContext() + guard try await context.evaluatePolicy(.deviceOwnerAuthentication,localizedReason:"Unlock your encrypted DNA, results and customization") else {throw Core.Failure(message:"Device authentication is required")} + self.context=context + } + private func privateKey(create:Bool) throws -> SecKey { + var query:[String:Any]=[kSecClass as String:kSecClassKey,kSecAttrApplicationTag as String:tag,kSecAttrKeyType as String:kSecAttrKeyTypeECSECPrimeRandom,kSecReturnRef as String:true] + if let context { query[kSecUseAuthenticationContext as String]=context } + var item:CFTypeRef? + let status=SecItemCopyMatching(query as CFDictionary,&item) + if status==errSecSuccess,let item { return (item as! SecKey) } + guard create && status==errSecItemNotFound else {throw Core.Failure(message:"Device key unavailable. Restore an encrypted backup or cloud copy with your recovery passphrase.")} + var error:Unmanaged? + guard let access=SecAccessControlCreateWithFlags(nil,kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly,[.privateKeyUsage,.userPresence],&error) else {throw Core.Failure(message:"Set a device passcode to protect saved DNA")} + let attributes:[String:Any]=[ + kSecAttrKeyType as String:kSecAttrKeyTypeECSECPrimeRandom, + kSecAttrKeySizeInBits as String:256, + kSecAttrTokenID as String:kSecAttrTokenIDSecureEnclave, + kSecPrivateKeyAttrs as String:[kSecAttrIsPermanent as String:true,kSecAttrApplicationTag as String:tag,kSecAttrAccessControl as String:access] + ] + guard let key=SecKeyCreateRandomKey(attributes as CFDictionary,&error) else {throw Core.Failure(message:"Secure Enclave protection is unavailable on this device")} + return key + } + func wrap(_ key:Data,id:String) throws -> [String:Any] { + guard let publicKey=SecKeyCopyPublicKey(try privateKey(create:true)) else {throw Core.Failure(message:"Device key unavailable")} + let payload=try JSONSerialization.data(withJSONObject:["vaultId":id,"key":key.base64EncodedString()],options:.sortedKeys) + var error:Unmanaged? + guard let encrypted=SecKeyCreateEncryptedData(publicKey,.eciesEncryptionCofactorVariableIVX963SHA256AESGCM,payload as CFData,&error) else {throw Core.Failure(message:"Unable to protect the data key")} + return ["algorithm":"SE-P256-ECIES","data":(encrypted as Data).base64EncodedString()] + } + func unwrap(_ wrapped:[String:Any],id:String) throws -> Data { + guard wrapped["algorithm"] as? String=="SE-P256-ECIES",let encoded=wrapped["data"] as? String,let data=Data(base64Encoded:encoded) else {throw Core.Failure(message:"Invalid protected key")} + var error:Unmanaged? + guard let opened=SecKeyCreateDecryptedData(try privateKey(create:false),.eciesEncryptionCofactorVariableIVX963SHA256AESGCM,data as CFData,&error),let object=try JSONSerialization.jsonObject(with:opened as Data) as? [String:Any],object["vaultId"] as? String==id,let encodedKey=object["key"] as? String,let key=Data(base64Encoded:encodedKey),key.count==32 else {throw Core.Failure(message:"Unable to unlock the protected data key")} + return key + } + func reset(){context?.invalidate();context=nil} + func delete() throws { + let status=SecItemDelete([kSecClass as String:kSecClassKey,kSecAttrApplicationTag as String:tag] as CFDictionary) + guard status==errSecSuccess || status==errSecItemNotFound else {throw Core.Failure(message:"Unable to delete the device key")} + reset() + } +} + +actor SecureDataVault { + private let directory:URL + private var url:URL { directory.appendingPathComponent("vault-v2.json") } + private let protector:VaultKeyProtector + private var key:Data? + private var record:[String:Any]? + init(protector:VaultKeyProtector=HardwareVaultKey(), directory:URL?=nil) { + self.protector=protector + self.directory=directory ?? FileManager.default.urls(for:.applicationSupportDirectory,in:.userDomainMask)[0].appendingPathComponent("protected-data",isDirectory:true) + } + var exists:Bool { FileManager.default.fileExists(atPath:url.path) } + var protection:String {protector.description} + private func wipe(){if key != nil {key!.resetBytes(in:0.. [String:Any] { + try await protector.authenticate() + if exists { + guard let value=try JSONSerialization.jsonObject(with:Data(contentsOf:url)) as? [String:Any],let envelope=value["envelope"] as? [String:Any],let id=envelope["vaultId"] as? String,let wrapped=value["deviceKey"] as? [String:Any] else {throw Core.Failure(message:"Invalid saved vault")} + var opened=try protector.unwrap(wrapped,id:id) + do { + _=try Core.call("vault_record_verify",["key":opened.base64EncodedString(),"record":value]) + try Core.restorePersisted(session,opened,envelope) + key=opened;record=value + return try Core.object("session_customization",["session":session]) + } catch {opened.resetBytes(in:0.. Data {Data(base64Encoded:try DeviceStore.entropy(count))!} + func save(_ session:Int,_ customization:[String:Any]) throws { + guard let key,var current=record,let envelope=current["envelope"] as? [String:Any],let id=envelope["vaultId"] as? String,let revision=envelope["revision"] as? Int else {throw Core.Failure(message:"Unlock your saved data first")} + current["envelope"]=try Core.sealSession(session,key,id,revision+1,try random(12),customization) + var sync=current["sync"] as? [String:Any] ?? [:];sync["dirty"]=true;current["sync"]=sync + try write(current) + } + func lock(){wipe()} + func delete() throws { + if exists {try FileManager.default.removeItem(at:url)} + try protector.delete();wipe() + } + func backup(_ password:String) throws -> [String:Any] { + guard let key,let current=record,let envelope=current["envelope"] as? [String:Any] else {throw Core.Failure(message:"Unlock your saved data first")} + let wrapped=try Core.object("vault_wrap_key",["key":key.base64EncodedString(),"vaultId":envelope["vaultId"]!,"password":password,"salt":DeviceStore.entropy(16),"nonce":DeviceStore.entropy(12)]) + return try authenticatedArchive(["version":2,"envelope":envelope,"wrappedKey":wrapped]) + } + func restore(_ session:Int,_ archive:[String:Any],_ password:String,allowOlder:Bool=false) async throws -> [String:Any] { + try await protector.authenticate() + guard let envelope=archive["envelope"] as? [String:Any],let wrapped=archive["wrappedKey"] as? [String:Any],let id=envelope["vaultId"] as? String,id==wrapped["vaultId"] as? String else {throw Core.Failure(message:"Invalid recovery archive")} + guard var recovered=Data(base64Encoded:try Core.string("vault_unwrap_key",["wrappedKey":wrapped,"password":password])) else {throw Core.Failure(message:"Invalid recovered key")} + let temporary=try Core.call("session_create") as! Int + defer{_ = try? Core.call("session_close",["session":temporary])} + do { + _=try Core.call("vault_record_verify",["key":recovered.base64EncodedString(),"record":archive]) + try Core.restorePersisted(temporary,recovered,envelope) + if !allowOlder,let old=record?["envelope"] as? [String:Any],old["vaultId"] as? String==id,(old["revision"] as? Int ?? 0)>(envelope["revision"] as? Int ?? 0) {throw Core.Failure(message:"This backup is older than this device's saved data")} + let previous=key;key=recovered + do {try write(["version":2,"deviceKey":protector.wrap(recovered,id:id),"envelope":envelope,"wrappedKey":wrapped,"sync":["enabled":false,"revision":0,"dirty":false]])} catch {key=previous;throw error} + try Core.restorePersisted(session,recovered,envelope) + return try Core.object("session_customization",["session":session]) + } catch {recovered.resetBytes(in:0.. [String:Any]? {record?["sync"] as? [String:Any]} + private func authenticatedArchive(_ value:[String:Any]) throws -> [String:Any] { + guard let key else{throw Core.Failure(message:"Unlock saved data first")} + var archive=value;archive["mac"]=try Core.string("vault_record_mac",["key":key.base64EncodedString(),"record":value]);return archive + } + func archive() throws -> [String:Any] { + guard let current=record,let envelope=current["envelope"],let wrapped=current["wrappedKey"] else {throw Core.Failure(message:"Set up encrypted sync first")} + return try authenticatedArchive(["version":2,"envelope":envelope,"wrappedKey":wrapped]) + } + func enableSync(_ wallet:String,_ password:String) throws { + guard var current=record else {throw Core.Failure(message:"Unlock your saved data first")} + current["wrappedKey"]=try backup(password)["wrappedKey"] + current["sync"]=["enabled":true,"wallet":wallet.lowercased(),"revision":0,"dirty":true] + try write(current) + } + func synced(_ revision:Int,_ uploadedRevision:Int) throws { + guard var current=record,var sync=current["sync"] as? [String:Any] else {return} + sync["revision"]=revision;sync["dirty"]=((current["envelope"] as? [String:Any])?["revision"] as? Int) != uploadedRevision;current["sync"]=sync;try write(current) + } + func enableExistingSync(_ wallet:String,_ revision:Int) throws { + guard var current=record else{throw Core.Failure(message:"Unlock saved data first")} + current["sync"]=["enabled":true,"wallet":wallet.lowercased(),"revision":revision,"dirty":false];try write(current) + } + func disableSync() throws { + guard var current=record,var sync=current["sync"] as? [String:Any] else {return} + sync["enabled"]=false;current["sync"]=sync;try write(current) + } + func genotypeDigest()->String?{(record?["envelope"] as? [String:Any])?["genotypeDigest"] as? String} + func acceptCloud(_ session:Int,_ archive:[String:Any],_ revision:Int) throws -> [String:Any] { + var archive=archive + guard let key,var current=record,let old=current["envelope"] as? [String:Any],var envelope=archive["envelope"] as? [String:Any],old["vaultId"] as? String==envelope["vaultId"] as? String else {throw Core.Failure(message:"This cloud vault needs its recovery passphrase on this device")} + if envelope["genotype"]==nil,envelope["genotypeDigest"] as? String==old["genotypeDigest"] as? String {envelope["genotype"]=old["genotype"];archive["envelope"]=envelope} + let temporary=try Core.call("session_create") as! Int + defer{_ = try? Core.call("session_close",["session":temporary])} + _=try Core.call("vault_record_verify",["key":key.base64EncodedString(),"record":archive]) + try Core.restorePersisted(temporary,key,envelope) + current["envelope"]=envelope;current["wrappedKey"]=archive["wrappedKey"] + var sync=current["sync"] as? [String:Any] ?? [:];sync["revision"]=revision;sync["dirty"]=false;current["sync"]=sync + try write(current);try Core.restorePersisted(session,key,envelope) + return try Core.object("session_customization",["session":session]) + } +} diff --git a/apps/ios/ExplorerTests/PublicSampleTests.swift b/apps/ios/ExplorerTests/PublicSampleTests.swift index 5309455..e1176e2 100644 --- a/apps/ios/ExplorerTests/PublicSampleTests.swift +++ b/apps/ios/ExplorerTests/PublicSampleTests.swift @@ -8,8 +8,9 @@ final class PublicSampleTests:XCTestCase { let wanted=try XCTUnwrap((expected["results"] as? [[String:Any]])?.first) let studies=try XCTUnwrap(JSONSerialization.jsonObject(with:Data(contentsOf:folder.appendingPathComponent("studies.json"))) as? [[String:Any]]) let study=try XCTUnwrap(studies.first{($0["id"] as? Int)==(wanted["studyId"] as? Int)}) - let store=ExplorerStore() - defer{store.clear();_ = try? Core.call("session_close",["session":store.session])} + let directory=FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString) + let store=ExplorerStore(dataVault:SecureDataVault(protector:TestVaultProtector(),directory:directory)) + defer{_ = try? Core.call("session_close",["session":store.session]);try? FileManager.default.removeItem(at:directory)} store.acceptedDisclaimer=true store.importDNA(folder.appendingPathComponent("23andme-public.txt")) let deadline=Date().addingTimeInterval(180) @@ -22,6 +23,7 @@ final class PublicSampleTests:XCTestCase { let result=try XCTUnwrap(store.results.first) XCTAssertEqual(result.text("userGenotype"),wanted["userGenotype"] as? String) XCTAssertEqual(result.number("riskScore"),try XCTUnwrap(wanted["riskScore"] as? Double),accuracy:1e-12) + await store.dataVault.lock() } func testFullPublic23andMeSample() throws { guard let folder=Bundle(for:Self.self).url(forResource:"TestData",withExtension:nil) else{throw XCTSkip("Run python scripts/prepare-public-sample.py before generating the Xcode project")} diff --git a/apps/ios/ExplorerTests/SecureDataVaultTests.swift b/apps/ios/ExplorerTests/SecureDataVaultTests.swift new file mode 100644 index 0000000..0e5c430 --- /dev/null +++ b/apps/ios/ExplorerTests/SecureDataVaultTests.swift @@ -0,0 +1,53 @@ +import XCTest +import CryptoKit +@testable import Explorer + +// Explicit simulator test dependency; production never substitutes for Secure Enclave. +final class TestVaultProtector:VaultKeyProtector { + let key=SymmetricKey(size:.bits256) + var description:String{"Explicit test protector"} + func authenticate() async throws{} + func wrap(_ data:Data,id:String)throws->[String:Any]{ + ["data":try AES.GCM.seal(data,using:key,authenticating:Data(id.utf8)).combined!.base64EncodedString()] + } + func unwrap(_ value:[String:Any],id:String)throws->Data{ + try AES.GCM.open(AES.GCM.SealedBox(combined:Data(base64Encoded:value["data"] as! String)!),using:key,authenticating:Data(id.utf8)) + } + func reset(){} + func delete()throws{} +} +final class SecureDataVaultTests:XCTestCase { + func testRestartRecoveryTamperAndGenotypeReuse() async throws { + let root=FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString) + let second=FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString) + let protector=TestVaultProtector(),vault=SecureDataVault(protector:TestVaultProtector(),directory:second) + let local=SecureDataVault(protector:protector,directory:root) + let s=try Core.call("session_create") as! Int,t=try Core.call("session_create") as! Int + defer{_ = try? Core.call("session_close",["session":s]);_ = try? Core.call("session_close",["session":t]);try? FileManager.default.removeItem(at:root);try? FileManager.default.removeItem(at:second)} + _=try await local.unlock(s) + _=try Core.call("session_import",["session":s,"content":"# 23andMe\nrs1 1 100 AG","fileName":"private.txt"]) + try await local.save(s,["fields":["age":"42"],"context":"private context"]) + try await local.enableSync("0x"+String(repeating:"a",count:40),"unique recovery passphrase") + let first=try await local.archive(),initial=first["envelope"] as! [String:Any] + try await local.save(s,["fields":["age":"43"],"context":"private context"]) + let backup=try await local.backup("unique recovery passphrase"),next=backup["envelope"] as! [String:Any] + XCTAssertEqual(initial["genotypeDigest"] as? String,next["genotypeDigest"] as? String) + let raw=try String(contentsOf:root.appendingPathComponent("vault-v2.json"),encoding:.utf8) + XCTAssertFalse(raw.contains("private context"));XCTAssertFalse(raw.contains("private.txt"));XCTAssertFalse(raw.contains("rs1")) + await local.lock() + let restarted=SecureDataVault(protector:protector,directory:root) + let customization=try await restarted.unlock(t) + XCTAssertEqual((customization["fields"] as? [String:String])?["age"],"43") + XCTAssertEqual(try Core.object("session_metadata",["session":t])["count"] as? Int,1) + do{_=try await vault.restore(t,backup,"incorrect recovery password");XCTFail("Wrong password accepted")}catch{} + let absent=await vault.exists;XCTAssertFalse(absent) + let restored=try await vault.restore(t,backup,"unique recovery passphrase") + XCTAssertEqual((restored["fields"] as? [String:String])?["age"],"43") + await restarted.lock() + var changed=try JSONSerialization.jsonObject(with:Data(raw.utf8)) as! [String:Any] + changed["sync"]=["enabled":true,"revision":999] + try JSONSerialization.data(withJSONObject:changed).write(to:root.appendingPathComponent("vault-v2.json")) + do{_=try await restarted.unlock(t);XCTFail("Tampered record accepted")}catch{} + await vault.lock() + } +} diff --git a/crates/explorer-core/Cargo.toml b/crates/explorer-core/Cargo.toml index 217be97..8e7728d 100644 --- a/crates/explorer-core/Cargo.toml +++ b/crates/explorer-core/Cargo.toml @@ -16,10 +16,12 @@ serde = { version = "1", features = ["derive"] } serde_json = "1" regex = "1" sha2 = "0.10" +hmac = "0.12" md-5 = "0.10" base64 = "0.22" aes-gcm = { version = "0.10", default-features = false, features = ["aes", "alloc"] } pbkdf2 = "0.12" +argon2 = { version = "0.5", default-features = false, features = ["alloc"] } x25519-dalek = { version = "2", features = ["static_secrets"] } zeroize = { version = "1", features = ["derive"] } flate2 = { version = "1", default-features = false, features = ["rust_backend"] } diff --git a/crates/explorer-core/src/lib.rs b/crates/explorer-core/src/lib.rs index e2c46fe..b0d6e2a 100644 --- a/crates/explorer-core/src/lib.rs +++ b/crates/explorer-core/src/lib.rs @@ -1,6 +1,7 @@ //! Portable client domain logic. No HTTP, filesystem, UI, or OS key storage. //! All platforms use the same versioned JSON protocol over WASM or UniFFI. mod crypto; +mod vault; mod files; mod genotype; mod llm; @@ -26,6 +27,7 @@ pub(crate) fn array(v: &Value) -> &[Value] { pub fn dispatch(operation: &str, input: Value) -> Result { match operation { + op if op.starts_with("vault_") => vault::dispatch(op, &input), "billing_catalog" => serde_json::from_str(include_str!("../../../shared/billing-catalog.json")).map_err(|e| e.to_string()), "version" => Ok(json!({"protocol":1,"core":env!("CARGO_PKG_VERSION")})), "parse_genotype" => Ok(genotype::parse( @@ -129,6 +131,20 @@ pub fn import_genotype(session: u64, bytes: Vec, file_name: String) -> Strin })) } +/// Keys use native byte buffers; the large plaintext genotype snapshot never crosses the FFI boundary. +#[cfg_attr(feature = "ffi", uniffi::export)] +pub fn persist_session(session: u64, key: Vec, vault_id: String, revision: u64, nonce: Vec, customization: String) -> String { + let key = zeroize::Zeroizing::new(key); + envelope(session::persist(session,&key,&vault_id,revision,&nonce,&customization)) +} +#[cfg_attr(feature = "ffi", uniffi::export)] +pub fn restore_persisted_session(session: u64, key: Vec, encrypted: String) -> String { + let key = zeroize::Zeroizing::new(key); + envelope(serde_json::from_str::(&encrypted).map_err(|_|"Invalid vault".to_string()) + .and_then(|encrypted| vault::open(&encrypted,&key)) + .and_then(|snapshot| session::dispatch("session_restore",json!({"session":session,"snapshot":snapshot})))) +} + // Import-free WASM ABI: synchronous on browsers, Node SSR and web workers. // Input/output are UTF-8; callers own input allocations and copy output before // the next call. Native platforms call core_call through generated UniFFI. diff --git a/crates/explorer-core/src/session.rs b/crates/explorer-core/src/session.rs index b7d4424..e523aba 100644 --- a/crates/explorer-core/src/session.rs +++ b/crates/explorer-core/src/session.rs @@ -8,6 +8,25 @@ struct Session { genotypes: serde_json::Map, results: Vec, metadata: Value, + customization: Value, + sealed_genotype: Option<(String,Value)>, +} +// Best-effort wiping of owned session buffers on lock/close. OS/runtime copies cannot be guaranteed erased. +fn wipe_value(value:&mut Value) { + use zeroize::Zeroize; + match value { + Value::String(s)=>s.zeroize(), + Value::Array(items)=>items.iter_mut().for_each(wipe_value), + Value::Object(items)=>for (mut key,mut value) in std::mem::take(items) {key.zeroize();wipe_value(&mut value)}, + _=>{} + } +} +impl Drop for Session { + fn drop(&mut self) { + use zeroize::Zeroize; + for (mut key,mut value) in std::mem::take(&mut self.genotypes) {key.zeroize();wipe_value(&mut value)} + self.results.iter_mut().for_each(wipe_value);wipe_value(&mut self.metadata);wipe_value(&mut self.customization); + } } impl Default for Session { fn default() -> Self { @@ -15,6 +34,8 @@ impl Default for Session { genotypes: Default::default(), results: Vec::new(), metadata: json!({"count":0}), + customization: json!({"fields":{},"context":""}), + sealed_genotype:None, } } } @@ -45,7 +66,7 @@ pub fn dispatch(op: &str, input: Value) -> Result { let content=decoded.as_deref().unwrap_or_else(||text(&input,"content"));let mut parsed=genotype::parse_mode(content,text(&input,"format"),true); if parsed["success"]!=true{return Err(text(&parsed,"error").into())} let genotypes=parsed["genotypes"].take().as_object().cloned().ok_or("Invalid parsed genotypes")?; - session.genotypes=genotypes;session.results.clear(); + session.genotypes=genotypes;session.results.clear();session.sealed_genotype=None; session.metadata=json!({"count":session.genotypes.len(),"detectedFormat":parsed["detectedFormat"],"fileHash":crate::crypto::file_hash(content),"fileName":text(&input,"fileName")});Ok(session.metadata.clone()) }, "session_metadata"=>Ok(session.metadata.clone()), @@ -70,7 +91,14 @@ pub fn dispatch(op: &str, input: Value) -> Result { "session_results"=>Ok(json!(session.results)), "session_export"=>Ok(json!(results::export(&session.results))), "session_import_results"=>{let value=results::import(&input)?;session.results=array(&value["results"]).to_vec();Ok(json!(session.results.len()))}, - "session_snapshot"=>Ok(json!({"version":1,"genotypes":session.genotypes,"results":session.results,"metadata":session.metadata}).to_string().into()), + "session_persist"=>{ + let customization:Value=serde_json::from_str(text(&input,"customization")).map_err(|_|"Invalid customization")?; + validate_customization(&customization)?; + session.customization=customization; + Ok(json!({"version":1,"genotypes":session.genotypes,"results":session.results,"metadata":session.metadata,"customization":session.customization}).to_string().into()) + }, + "session_customization"=>Ok(session.customization.clone()), + "session_snapshot"=>Ok(json!({"version":1,"genotypes":session.genotypes,"results":session.results,"metadata":session.metadata,"customization":session.customization}).to_string().into()), "session_restore"=>{ let snapshot:Value=serde_json::from_str(text(&input,"snapshot")).map_err(|_|"Invalid session backup")?; if snapshot["version"]!=1{return Err("Unsupported session backup".into())} @@ -78,9 +106,31 @@ pub fn dispatch(op: &str, input: Value) -> Result { let genotypes=snapshot["genotypes"].as_object().ok_or("Invalid genotypes")?; if !genotypes.values().all(Value::is_string){return Err("Invalid genotypes".into())} let results=results::validate_snapshot(&snapshot)?.to_vec(); - session.genotypes=genotypes.clone();session.results=results;session.metadata=snapshot["metadata"].clone();Ok(session.metadata.clone()) + if let Some(custom)=snapshot.get("customization"){validate_customization(custom)?;} + session.genotypes=genotypes.clone();session.sealed_genotype=None;session.results=results;session.metadata=snapshot["metadata"].clone();session.metadata["count"]=json!(session.genotypes.len());session.customization=snapshot.get("customization").filter(|v|v.is_object()).cloned().unwrap_or_else(||json!({"fields":{},"context":""}));Ok(session.metadata.clone()) }, "session_clear"=>{*session=Session::default();Ok(Value::Null)}, _=>Err("Unknown session operation".into()) } } + +fn validate_customization(value:&Value)->Result<(),String> { + let fields=value["fields"].as_object().ok_or("Invalid customization fields")?; + if fields.len()>100 || !fields.values().all(|v|v.as_str().is_some_and(|s|s.len()<=10000)) || value["context"].as_str().is_none_or(|s|s.len()>100000) {return Err("Invalid customization".into());} + Ok(()) +} + +pub fn persist(id:u64,key:&[u8],vault_id:&str,revision:u64,nonce:&[u8],customization:&str)->Result { + use sha2::Digest; + let custom:Value=serde_json::from_str(customization).map_err(|_|"Invalid customization")?;validate_customization(&custom)?; + let mut sessions=SESSIONS.get_or_init(||Mutex::new(HashMap::new())).lock().map_err(|_|"Session unavailable")?; + let session=sessions.get_mut(&id).ok_or("Session is closed")?; + let owner=format!("{vault_id}:{:x}",sha2::Sha256::digest(key)); + let genotype=match &session.sealed_genotype { + Some((saved,genotype)) if saved==&owner=>genotype.clone(), + _=>{let encrypted=crate::vault::seal_genotypes(&json!(session.genotypes),key,vault_id,nonce)?;session.sealed_genotype=Some((owner,encrypted.clone()));encrypted} + }; + session.customization=custom; + let snapshot=json!({"version":1,"results":session.results,"metadata":session.metadata,"customization":session.customization}); + crate::vault::seal_state(snapshot,genotype,key,vault_id,revision,nonce) +} diff --git a/crates/explorer-core/src/vault.rs b/crates/explorer-core/src/vault.rs new file mode 100644 index 0000000..ba3112a --- /dev/null +++ b/crates/explorer-core/src/vault.rs @@ -0,0 +1,135 @@ +//! Versioned, authenticated and compressed vault format shared by WASM and native clients. +use crate::text; +use aes_gcm::{aead::{Aead, KeyInit, Payload}, Aes256Gcm, Nonce}; +use argon2::{Algorithm, Argon2, Params, Version}; +use base64::{engine::general_purpose::STANDARD, Engine}; +use flate2::{write::GzEncoder, read::GzDecoder, Compression}; +use serde_json::{json, Value}; +use std::io::{Read, Write}; +use zeroize::Zeroizing; + +const MAX: usize = 256 * 1024 * 1024; +fn bytes(v: &Value, name: &str, len: usize) -> Result, String> { + let value = STANDARD.decode(text(v,name)).map_err(|_| "Invalid vault bytes")?; + if len > 0 && value.len()!=len { return Err("Invalid vault byte length".into()); } + Ok(value) +} +fn identity(id: &str) -> Result<(), String> { + if id.len()!=36 || !id.bytes().enumerate().all(|(i,c)| if [8,13,18,23].contains(&i) {c==b'-'} else {c.is_ascii_hexdigit()}) { return Err("Invalid vault identity".into()); } + Ok(()) +} +fn aad(v: &Value) -> Result { + let id=text(v,"vaultId"); identity(id)?; + let revision=v["revision"].as_u64().filter(|r| *r>0 && *r<=9007199254740991).ok_or("Invalid vault revision")?; + if v["version"]!=2 || v["encoding"]!="gzip" {return Err("Unsupported vault format".into());} + Ok(format!("monadic-dna/explorer/data/v2|{id}|{revision}|gzip")) +} +fn crypt(key: &[u8], iv: &[u8], data: &[u8], aad: &[u8], encrypt: bool) -> Result,String> { + if key.len()!=32 || iv.len()!=12 {return Err("Invalid vault key or nonce".into());} + let cipher=Aes256Gcm::new_from_slice(key).map_err(|_|"Invalid vault key")?; + let payload=Payload{msg:data,aad}; + if encrypt { cipher.encrypt(Nonce::from_slice(iv),payload) } else { cipher.decrypt(Nonce::from_slice(iv),payload) } + .map_err(|_|"Vault authentication failed".into()) +} +pub fn seal(snapshot: &str, key: &[u8], id: &str, revision: u64, iv: &[u8]) -> Result { + if snapshot.len()>MAX {return Err("Vault exceeds supported size".into());} + let mut envelope=json!({"version":2,"vaultId":id,"revision":revision,"encoding":"gzip","nonce":STANDARD.encode(iv)}); + let authenticated=aad(&envelope)?; + let mut encoder=GzEncoder::new(Vec::new(),Compression::fast()); + encoder.write_all(snapshot.as_bytes()).map_err(|_|"Unable to compress vault")?; + let compressed=Zeroizing::new(encoder.finish().map_err(|_|"Unable to compress vault")?); + envelope["ciphertext"]=STANDARD.encode(crypt(key,iv,&compressed,authenticated.as_bytes(),true)?).into(); + Ok(envelope) +} +fn open_raw(envelope: &Value, key: &[u8]) -> Result { + let authenticated=aad(envelope)?; + if text(envelope,"ciphertext").len()>MAX {return Err("Vault exceeds supported size".into());} + let iv=bytes(envelope,"nonce",12)?; let ciphertext=bytes(envelope,"ciphertext",0)?; + let compressed=Zeroizing::new(crypt(key,&iv,&ciphertext,authenticated.as_bytes(),false)?); + let mut decoder=GzDecoder::new(compressed.as_slice()).take((MAX+1) as u64); + let mut plain=Zeroizing::new(Vec::new()); decoder.read_to_end(&mut plain).map_err(|_|"Invalid vault compression")?; + if plain.len()>MAX {return Err("Expanded vault exceeds supported size".into());} + String::from_utf8(plain.to_vec()).map_err(|_|"Invalid vault encoding".into()) +} +pub fn genotype_key(key:&[u8])->Result>,String> { + use hmac::{Hmac,Mac}; + let mut derived= as Mac>::new_from_slice(key).map_err(|_|"Invalid data key")?; + derived.update(b"monadic-dna/explorer/genotype-key/v2"); + Ok(Zeroizing::new(derived.finalize().into_bytes().to_vec())) +} +pub fn digest(value:&Value)->String { + use sha2::Digest; + format!("{:x}",sha2::Sha256::digest(value.to_string().as_bytes())) +} +pub fn seal_genotypes(genotypes:&Value,key:&[u8],id:&str,iv:&[u8])->Result { + let derived=genotype_key(key)?; + seal(&genotypes.to_string(),&derived,id,1,iv) +} +pub fn seal_state(mut snapshot:Value,genotype:Value,key:&[u8],id:&str,revision:u64,iv:&[u8])->Result { + snapshot.as_object_mut().ok_or("Invalid vault snapshot")?.remove("genotypes"); + let hash=digest(&genotype);snapshot["genotypeDigest"]=hash.clone().into(); + let plaintext=Zeroizing::new(snapshot.to_string()); + let mut encrypted=seal(&plaintext,key,id,revision,iv)?; + encrypted["genotype"]=genotype;encrypted["genotypeDigest"]=hash.into();Ok(encrypted) +} +pub fn open(envelope:&Value,key:&[u8])->Result { + let plain=Zeroizing::new(open_raw(envelope,key)?); + let mut snapshot:Value=serde_json::from_str(&plain).map_err(|_|"Invalid vault snapshot")?; + if let Some(genotype)=envelope.get("genotype") { + let hash=digest(genotype); + if snapshot["genotypeDigest"]!=hash || envelope["genotypeDigest"]!=hash || envelope["vaultId"]!=genotype["vaultId"] {return Err("Genotype reference authentication failed".into());} + let derived=genotype_key(key)?; + let opened=Zeroizing::new(open_raw(genotype,&derived)?); + snapshot["genotypes"]=serde_json::from_str(&opened).map_err(|_|"Invalid genotype data")?; + snapshot.as_object_mut().unwrap().remove("genotypeDigest"); + } + Ok(snapshot.to_string()) +} +fn recovery_key(password: &str, salt: &[u8]) -> Result,String> { + if password.len()<12 || password.len()>1024 || salt.len()!=16 {return Err("Use a recovery passphrase of at least 12 characters".into());} + let params=Params::new(65536,3,1,Some(32)).map_err(|_|"Invalid key derivation")?; + let mut key=Zeroizing::new([0u8;32]); + Argon2::new(Algorithm::Argon2id,Version::V0x13,params).hash_password_into(password.as_bytes(),salt,&mut *key).map_err(|_|"Key derivation failed")?; + Ok(key) +} +pub fn dispatch(op: &str, input: &Value) -> Result { + match op { + "vault_record_mac" | "vault_record_verify" => { + use hmac::{Hmac, Mac}; + let key=Zeroizing::new(bytes(input,"key",32)?); + let mut record=input["record"].as_object().cloned().ok_or("Invalid vault record")?; + let expected=record.remove("mac"); + let canonical=serde_json::to_vec(&record).map_err(|_|"Invalid vault record")?; + let mut mac= as Mac>::new_from_slice(&key).map_err(|_|"Invalid key")?; + mac.update(b"monadic-dna/explorer/local-record/v2|");mac.update(&canonical); + if op=="vault_record_verify" { + let expected=STANDARD.decode(expected.as_ref().and_then(Value::as_str).unwrap_or("")).map_err(|_|"Invalid vault record")?; + mac.verify_slice(&expected).map_err(|_|"Vault record authentication failed")?;Ok(Value::Bool(true)) + } else {Ok(STANDARD.encode(mac.finalize().into_bytes()).into())} + }, + "vault_genotype_digest"=>Ok(digest(&input["genotype"]).into()), + "vault_seal" => { + let key=Zeroizing::new(bytes(input,"key",32)?);let id=text(input,"vaultId");let nonce=bytes(input,"nonce",12)?; + let snapshot:Value=serde_json::from_str(text(input,"snapshot")).map_err(|_|"Invalid snapshot")?; + let genotype=seal_genotypes(&snapshot["genotypes"],&key,id,&nonce)?; + seal_state(snapshot,genotype,&key,id,input["revision"].as_u64().unwrap_or(0),&nonce) + }, + "vault_open" => {let key=Zeroizing::new(bytes(input,"key",32)?); Ok(open(&input["envelope"],&key)?.into())}, + "vault_wrap_key" => { + let id=text(input,"vaultId");identity(id)?; + let salt=bytes(input,"salt",16)?;let nonce=bytes(input,"nonce",12)?; + let key=recovery_key(text(input,"password"),&salt)?;let data_key=Zeroizing::new(bytes(input,"key",32)?); + let encrypted=crypt(&*key,&nonce,&data_key,format!("monadic-dna/explorer/key/v2|{id}").as_bytes(),true)?; + Ok(json!({"version":2,"vaultId":id,"kdf":"Argon2id-64MiB-3","salt":STANDARD.encode(salt),"nonce":STANDARD.encode(nonce),"ciphertext":STANDARD.encode(encrypted)})) + }, + "vault_unwrap_key" => { + let wrapped=&input["wrappedKey"];let id=text(wrapped,"vaultId");identity(id)?; + if wrapped["version"]!=2 || wrapped["kdf"]!="Argon2id-64MiB-3" {return Err("Unsupported recovery format".into());} + let key=recovery_key(text(input,"password"),&bytes(wrapped,"salt",16)?)?; + let decoded=Zeroizing::new(crypt(&*key,&bytes(wrapped,"nonce",12)?,&bytes(wrapped,"ciphertext",0)?,format!("monadic-dna/explorer/key/v2|{id}").as_bytes(),false)?); + if decoded.len()!=32 {return Err("Invalid recovered key".into());} + Ok(STANDARD.encode(&*decoded).into()) + }, + _ => Err("Unknown vault operation".into()) + } +} diff --git a/docs/secure-data-vault.md b/docs/secure-data-vault.md new file mode 100644 index 0000000..23a12bd --- /dev/null +++ b/docs/secure-data-vault.md @@ -0,0 +1,45 @@ +# Secure data persistence and encrypted sync + +Android and iOS automatically persist imported genotype data, saved study results and profile customization in an atomic, authenticated encrypted file. Unlock requires device authentication and a device passcode. Lock/background clears the decrypted Rust session, profile and visible results; Android blocks screenshots, and iOS covers the app while inactive. Save failures are displayed. Customization saves after a short debounce; terminating an app before a pending save completes can lose the latest edit. + +## Keys and device storage + +Each vault has a cryptographically random 256-bit data encryption key (DEK). The shared Rust core encrypts compressed state with AES-256-GCM, authenticating the format, vault UUID and revision. A domain-separated HMAC-derived key encrypts the genotype blob, so changing results/profile does not require encrypting the genome again. State authenticates the genotype ciphertext digest. The full local record and portable archive have a keyed MAC, including recovery and sync metadata. + +- **iOS:** a permanent, non-exportable P-256 Secure Enclave private key wraps the DEK using Apple ECIES. Its access control requires user presence and `WhenPasscodeSetThisDeviceOnly`. No simulator/software fallback exists in production. The ciphertext file uses complete file protection and is excluded from backups. +- **Android:** a non-exportable, authentication-required AES-256 Android Keystore key wraps the DEK. StrongBox is preferred, followed by the device's normal Keystore implementation. The app reports the actual hardware/software protection level; hardware backing cannot be guaranteed on every Android device. Authentication permits a 30-second Keystore operation window, while app unlock always requests authentication. The ciphertext file is in `noBackupFilesDir`; app backups are disabled. +- The DEK must enter app memory while data is unlocked. It is wiped on lock where practical; hardware wrapping keys are never exported. Runtime/OS copies and a compromised unlocked device cannot be made inaccessible by application encryption. +- Provider credentials/account tokens remain in the existing Keychain/Keystore credential storage. They are **not** included in data sync. Generated chat/report text remains session-only; the persisted results are saved study matches. + +Removing a passcode, losing a device key or reinstalling can make the local copy unrecoverable. Export a recovery backup or enable encrypted sync before losing access. Uninstalling does not promise to delete every cloud/exported copy; explicit cloud deletion is available separately. + +## Recovery and cross-platform transfer + +Portable v2 archives contain encrypted data and the DEK encrypted under a recovery passphrase using Argon2id (64 MiB, 3 passes, one lane), a fresh 16-byte salt, and AES-256-GCM. Use a long, unique passphrase (minimum 12 characters); store it in a password manager. There is no server password reset for encrypted data. The server could attempt offline guesses, so account 2FA does not replace a strong recovery passphrase. + +Web, Android and iOS use the same Rust format and can import/export v2 DNA, results and customization. Legacy v1 PBKDF2 portable files remain readable. Web imports initially restore memory; existing browser save controls persist those sections in the encrypted IndexedDB vault. Web vault protection is passphrase/WebCrypto based and does not promise Secure Enclave protection. **Automatic cloud sync is currently implemented in the native apps; Web interoperability uses encrypted portable files.** + +Hardware keys intentionally remain on their originating devices. Another device uses the recovery passphrase to decrypt the shared DEK, then wraps it with its own hardware key. Syncing hardware private keys would defeat this boundary. + +## Opt-in native sync + +Sign in to the same Explorer account, unlock the local vault, and enable encrypted sync with a recovery passphrase. On another device, sign in and choose **Restore cloud copy** with that passphrase. This explicitly replaces local data. Sync happens after local saves, at unlock, and with **Sync now** while the app is open; background synchronization is not promised. + +The authenticated backend stores one ciphertext archive per account. Dynamic JWT wallet ownership is required. It receives ciphertext, encrypted recovery material and metadata (account, vault ID, size, revision and update time), never the DEK, passphrase, plaintext genome or profile. Catalog matching remains local. User-consented LLM requests continue to send selected results/profile to the chosen provider independently of sync. + +Compare-and-swap revisions reject concurrent uploads and stale deletes. Unchanged genotype ciphertext is omitted in transfers. A cloud update never silently replaces unsaved/local conflicting changes. Back up local changes, then explicitly restore the cloud copy to resolve a conflict. This release uses whole-state replacement, not automatic field/result merging. Devices detect cloud deletion; they do not silently recreate it from a stale revision. A server can still deny availability or replay a previously valid archive to a new device; there is no independent transparency log. + +Disabling sync affects this device only. Deleting the cloud copy retains other device copies and exported backups. Changing recovery protection is not cryptographic revocation of devices that already possess the DEK; device revocation/data-key rotation is not yet implemented. + +## Deployment + +1. Apply `npm run vault:migrate` against the intended `POSTGRES_DB` database (migration `002-encrypted-vault-sync.sql`). +2. Configure existing Dynamic authentication and validated database TLS. +3. Set `VAULT_SYNC_ENABLED=true` on the backend. It defaults off and reports unavailable until configured. +4. Apply normal TLS ingress, authenticated request limits and account deletion/retention policy to the ciphertext endpoint `/api/vault-sync` (40 MiB maximum request). + +No production database or deployment is changed by merely merging this implementation. + +## Verification + +Core/WASM tests include independent Node Argon2id/AES-GCM/HMAC decoding, wrong passwords/keys, changed headers, substituted genotype references, metadata authentication and customization restoration. Postgres tests exercise concurrent create/update, delta reconstruction, account isolation and stale deletion/recreation rejection. Native simulator tests use an explicitly injected test-only key protector and real Rust encryption/files to exercise restart, recovery, genotype reuse and tampering. These tests do not establish physical-device Secure Enclave/StrongBox behavior. Before release, test biometric/PIN unlock, cancel, background lock, reboot, passcode removal and lost-key recovery on physical iOS/Android devices, including StrongBox and TEE Android models. diff --git a/lib/vault-sync.ts b/lib/vault-sync.ts new file mode 100644 index 0000000..f39301c --- /dev/null +++ b/lib/vault-sync.ts @@ -0,0 +1,56 @@ +import { createHash } from 'node:crypto'; +import { getDb } from './db'; +export class VaultSyncError extends Error { constructor(message: string, public status=400) { super(message); } } +export const MAX_SYNC_BYTES=40*1024*1024; +type Cipher = { version:2; vaultId:string; nonce:string; ciphertext:string }; +type Genotype = Cipher & {revision:number;encoding:'gzip'}; +export type VaultArchive = { version:2; mac:string; envelope:Cipher & {revision:number;encoding:'gzip';genotype:Genotype;genotypeDigest:string}; wrappedKey:Cipher & {kdf:'Argon2id-64MiB-3';salt:string} }; +function base64(value:unknown, length?:number): value is string { + return typeof value==='string' && value.length<=MAX_SYNC_BYTES && /^[A-Za-z0-9+/]*={0,2}$/.test(value) && (length===undefined ? value.length>=24 : Buffer.from(value,'base64').length===length) && Buffer.from(value,'base64').toString('base64')===value; +} +export function validateArchive(value:unknown): VaultArchive { + if (!value || typeof value!=='object') throw new VaultSyncError('Invalid encrypted archive'); + const {version,mac,envelope:e,wrappedKey:k}=value as VaultArchive; + if(!base64(mac,32) || version!==2 || !e || !k || e.version!==2 || k.version!==2 || e.vaultId!==k.vaultId || !/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e.vaultId) + || !e.genotype || e.genotype.version!==2 || e.genotype.vaultId!==e.vaultId || e.genotype.revision!==1 || e.genotype.encoding!=='gzip' || !base64(e.genotype.nonce,12) || !base64(e.genotype.ciphertext) || !/^[0-9a-f]{64}$/.test(e.genotypeDigest) + || !Number.isSafeInteger(e.revision) || e.revision<1 || e.encoding!=='gzip' || k.kdf!=='Argon2id-64MiB-3' || !base64(e.nonce,12) || !base64(k.nonce,12) || !base64(k.salt,16) || !base64(k.ciphertext,48) || !base64(e.ciphertext)) throw new VaultSyncError('Invalid encrypted archive'); + const genotype:Genotype={ciphertext:e.genotype.ciphertext,encoding:'gzip',nonce:e.genotype.nonce,revision:1,vaultId:e.vaultId,version:2}; + if(createHash('sha256').update(JSON.stringify(genotype)).digest('hex')!==e.genotypeDigest) throw new VaultSyncError('Invalid genotype reference'); + // Reconstruct the supported ciphertext-only schema, discarding unrelated fields. + return {version:2,mac,envelope:{version:2,vaultId:e.vaultId,revision:e.revision,encoding:'gzip',nonce:e.nonce,ciphertext:e.ciphertext,genotype,genotypeDigest:e.genotypeDigest},wrappedKey:{version:2,vaultId:k.vaultId,kdf:'Argon2id-64MiB-3',salt:k.salt,nonce:k.nonce,ciphertext:k.ciphertext}}; +} +export async function readSyncedVault(wallet:string,knownRevision?:number,knownGenotype?:string) { + const result=await getDb().query<{revision:string;archive:VaultArchive}>('SELECT revision,archive FROM encrypted_user_vaults WHERE wallet=$1',[wallet]); + if(!result.rows.length)return {revision:0,archive:null,genotypeDigest:null}; + const row=result.rows[0], revision=Number(row.revision), hash=row.archive.envelope.genotypeDigest; + if(revision===knownRevision)return {revision,archive:null,genotypeDigest:hash}; + const archive=JSON.parse(JSON.stringify(row.archive)); + if(hash===knownGenotype)delete archive.envelope.genotype; + return {revision,archive,genotypeDigest:hash}; +} +export async function writeSyncedVault(wallet:string,base:number,input:unknown) { + if(!Number.isSafeInteger(base) || base<0) throw new VaultSyncError('Invalid sync revision'); + const client=await getDb().connect(); + try { + await client.query('BEGIN'); + const current=await client.query<{revision:string;vault_id:string;archive:VaultArchive}>('SELECT revision,vault_id,archive FROM encrypted_user_vaults WHERE wallet=$1 FOR UPDATE',[wallet]); + if(!input || typeof input!=="object") throw new VaultSyncError("Invalid encrypted archive"); + const archive=JSON.parse(JSON.stringify(input)); + if(!archive?.envelope?.genotype && current.rows[0]?.archive.envelope.genotypeDigest===archive?.envelope?.genotypeDigest)archive.envelope.genotype=current.rows[0].archive.envelope.genotype; + const validated=validateArchive(archive); + if(current.rows.length) { + if(Number(current.rows[0].revision)!==base || current.rows[0].vault_id.toLowerCase()!==validated.envelope.vaultId.toLowerCase()) throw new VaultSyncError('Another device changed this vault. Download its latest version before uploading.',409); + await client.query('UPDATE encrypted_user_vaults SET revision=revision+1,archive=$2,updated_at=now() WHERE wallet=$1',[wallet,validated]); + } else { + if(base!==0) throw new VaultSyncError('The cloud copy was removed. Re-enable sync explicitly before creating a new copy.',409); + const created=await client.query('INSERT INTO encrypted_user_vaults(wallet,vault_id,revision,archive) VALUES($1,$2,1,$3) ON CONFLICT DO NOTHING RETURNING revision',[wallet,validated.envelope.vaultId,validated]); + if(!created.rowCount) throw new VaultSyncError('Another device created a cloud vault. Download it before uploading.',409); + } + await client.query('COMMIT');return base+1; + } catch(error) {await client.query('ROLLBACK');throw error;} finally {client.release();} +} +export async function deleteSyncedVault(wallet:string,base:number) { + if(!Number.isSafeInteger(base) || base<1) throw new VaultSyncError('Invalid sync revision'); + const result=await getDb().query('DELETE FROM encrypted_user_vaults WHERE wallet=$1 AND revision=$2',[wallet,base]); + if(!result.rowCount) throw new VaultSyncError('Cloud data changed. Refresh before deleting.',409); +} diff --git a/migrations/002-encrypted-vault-sync.sql b/migrations/002-encrypted-vault-sync.sql new file mode 100644 index 0000000..b38318e --- /dev/null +++ b/migrations/002-encrypted-vault-sync.sql @@ -0,0 +1,9 @@ +BEGIN; +CREATE TABLE IF NOT EXISTS encrypted_user_vaults ( + wallet text PRIMARY KEY CHECK (wallet ~ '^0x[0-9a-f]{40}$'), + vault_id uuid NOT NULL, + revision bigint NOT NULL CHECK (revision>0), + archive jsonb NOT NULL, + updated_at timestamptz NOT NULL DEFAULT now() +); +COMMIT; diff --git a/package.json b/package.json index e644b09..f7fc59d 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,9 @@ "test:public-sample:web": "node tests/e2e/public-sample-web.mjs", "test:public-sample:api": "node tests/e2e/public-sample-api.mjs", "test:billing": "tsx --test tests/store-billing*.test.ts", - "billing:migrate": "node scripts/migrate-mobile-billing.mjs" + "billing:migrate": "node scripts/migrate-mobile-billing.mjs", + "vault:migrate": "node scripts/migrate-vault-sync.mjs", + "test:vault-sync": "tsx --test tests/vault-sync.test.ts" }, "keywords": [], "author": "Monadic DNA / Recherch\u00e9 Inc", diff --git a/scripts/migrate-vault-sync.mjs b/scripts/migrate-vault-sync.mjs new file mode 100644 index 0000000..f5c69e9 --- /dev/null +++ b/scripts/migrate-vault-sync.mjs @@ -0,0 +1,7 @@ +import { readFile } from 'node:fs/promises'; +import pg from 'pg'; +if(!process.env.POSTGRES_DB)throw new Error('Set POSTGRES_DB to the intended environment database.'); +const host=new URL(process.env.POSTGRES_DB).hostname; +const ssl=['localhost','127.0.0.1','[::1]'].includes(host)?false:{rejectUnauthorized:true,...(process.env.DATABASE_CA_CERT?{ca:process.env.DATABASE_CA_CERT}:{})}; +const client=new pg.Client({connectionString:process.env.POSTGRES_DB,ssl}); +try{await client.connect();await client.query(await readFile(new URL('../migrations/002-encrypted-vault-sync.sql',import.meta.url),'utf8'));console.log('Encrypted sync schema applied.');}finally{await client.end();} diff --git a/tests/core.test.mjs b/tests/core.test.mjs index 06b95b8..26be995 100644 --- a/tests/core.test.mjs +++ b/tests/core.test.mjs @@ -145,3 +145,28 @@ test('large native imports keep only compact genotype state and enforce strict R assert.deepEqual(coreCall('session_analyze',{session,strict:true,studies:[study]}),[]); } finally{coreCall('session_close',{session});} }); + +test('v2 recovery interoperates with independent Argon2id/AES-GCM decoder and authenticates all data', async () => { + const {openPortableVault}=await import('./vault-format.mjs'); + const key=randomBytes(32).toString('base64'),vaultId='8492f2d1-a425-4a33-8f44-ea25fe126f06',password='unique test recovery passphrase'; + const snapshot={version:1,genotypes:{rs1:'AG'},results:[],metadata:{fileName:'private.txt',count:1},customization:{fields:{age:'42',ethnicities:'South Asian'},context:'private context'}}; + const envelope=coreCall('vault_seal',{snapshot:JSON.stringify(snapshot),key,vaultId,revision:7,nonce:randomBytes(12).toString('base64')}); + const wrappedKey=coreCall('vault_wrap_key',{key,vaultId,password,salt:randomBytes(16).toString('base64'),nonce:randomBytes(12).toString('base64')}); + const archive={version:2,envelope,wrappedKey};archive.mac=coreCall('vault_record_mac',{key,record:archive}); + assert.deepEqual(openPortableVault(archive,password),snapshot); + assert.equal(coreCall('vault_unwrap_key',{wrappedKey,password}),key); + assert.deepEqual(JSON.parse(coreCall('vault_open',{envelope,key})),snapshot); + assert.throws(()=>coreCall('vault_unwrap_key',{wrappedKey,password:'wrong test password'})); + assert.throws(()=>coreCall('vault_unwrap_key',{wrappedKey:{...wrappedKey,vaultId:'11111111-1111-1111-1111-111111111111'},password})); + assert.throws(()=>coreCall('vault_open',{envelope:{...envelope,revision:8},key})); + assert.throws(()=>coreCall('vault_open',{envelope:{...envelope,genotypeDigest:'0'.repeat(64)},key})); + assert.throws(()=>coreCall('vault_open',{envelope:{...envelope,genotype:{...envelope.genotype,nonce:randomBytes(12).toString('base64')}},key})); + assert.throws(()=>coreCall('vault_record_verify',{key,record:{...archive,wrappedKey:{...wrappedKey,salt:randomBytes(16).toString('base64')}}})); + assert.throws(()=>coreCall('vault_open',{envelope,key:randomBytes(32).toString('base64')})); + const session=coreCall('session_create'); + try { + coreCall('session_restore',{session,snapshot:coreCall('vault_open',{envelope,key})}); + assert.deepEqual(coreCall('session_customization',{session}),snapshot.customization); + assert.equal(coreCall('session_metadata',{session}).count,1); + } finally{coreCall('session_close',{session});} +}); diff --git a/tests/e2e/public-sample-web.mjs b/tests/e2e/public-sample-web.mjs index 2fea1cc..0417e17 100644 --- a/tests/e2e/public-sample-web.mjs +++ b/tests/e2e/public-sample-web.mjs @@ -1,7 +1,7 @@ import { openBrowser } from "./public-sample-browser.mjs"; import { readFileSync, writeFileSync } from "node:fs"; import assert from "node:assert/strict"; -import { pbkdf2Sync, createDecipheriv } from "node:crypto"; +import { openPortableVault } from "../vault-format.mjs"; const root = new URL("../../.test-data/public-sample/", import.meta.url) .pathname; const origin = process.env.EXPLORER_TEST_URL || "http://127.0.0.1:3000"; @@ -143,26 +143,7 @@ try { const sealed = JSON.parse( readFileSync(root + "web-portable-vault.json", "utf8"), ); - const key = pbkdf2Sync( - password, - Buffer.from(sealed.salt, "base64"), - sealed.iterations, - 32, - "sha256", - ); - const encrypted = Buffer.from(sealed.ciphertext, "base64"); - const cipher = createDecipheriv( - "aes-256-gcm", - key, - Buffer.from(sealed.iv, "base64"), - ); - cipher.setAuthTag(encrypted.subarray(-16)); - const snapshot = JSON.parse( - Buffer.concat([ - cipher.update(encrypted.subarray(0, -16)), - cipher.final(), - ]).toString("utf8"), - ); + const snapshot = openPortableVault(sealed,password); assert.equal( Object.keys(snapshot.genotypes).length, expected.parsedVariants, diff --git a/tests/vault-format.mjs b/tests/vault-format.mjs new file mode 100644 index 0000000..1154a49 --- /dev/null +++ b/tests/vault-format.mjs @@ -0,0 +1,23 @@ +// Independent Node crypto decoder: validates the shared Rust wire format across platforms. +import { argon2Sync, createDecipheriv, createHmac, createHash } from 'node:crypto'; +import { gunzipSync } from 'node:zlib'; +import assert from 'node:assert/strict'; +const canonical=value=>value && typeof value==='object' ? Array.isArray(value) ? value.map(canonical) : Object.fromEntries(Object.keys(value).sort().map(k=>[k,canonical(value[k])])) : value; +export function openPortableVault(archive,password) { + const {wrappedKey:w,envelope:e,mac,...rest}=archive; + const kek=argon2Sync('argon2id',{message:password,nonce:Buffer.from(w.salt,'base64'),parallelism:1,tagLength:32,memory:65536,passes:3}); + function decrypt(value,key,aad) { + const bytes=Buffer.from(value.ciphertext,'base64'),cipher=createDecipheriv('aes-256-gcm',key,Buffer.from(value.nonce,'base64')); + cipher.setAAD(Buffer.from(aad));cipher.setAuthTag(bytes.subarray(-16)); + return Buffer.concat([cipher.update(bytes.subarray(0,-16)),cipher.final()]); + } + const key=decrypt(w,kek,`monadic-dna/explorer/key/v2|${w.vaultId}`); + const actual=createHmac('sha256',key).update('monadic-dna/explorer/local-record/v2|').update(JSON.stringify(canonical({...rest,envelope:e,wrappedKey:w}))).digest('base64'); + assert.equal(actual,mac,'Portable archive MAC'); + const read=(value,key)=>JSON.parse(gunzipSync(decrypt(value,key,`monadic-dna/explorer/data/v2|${value.vaultId}|${value.revision}|gzip`))); + const state=read(e,key),derived=createHmac('sha256',key).update('monadic-dna/explorer/genotype-key/v2').digest(); + const digest=createHash('sha256').update(JSON.stringify(canonical(e.genotype))).digest('hex'); + assert.equal(state.genotypeDigest,digest);assert.equal(e.genotypeDigest,digest); + delete state.genotypeDigest; + return {...state,genotypes:read(e.genotype,derived)}; +} diff --git a/tests/vault-sync.test.ts b/tests/vault-sync.test.ts new file mode 100644 index 0000000..6dd7b6f --- /dev/null +++ b/tests/vault-sync.test.ts @@ -0,0 +1,38 @@ +import { test } from 'node:test'; +import assert from 'node:assert/strict'; +import { createHash,randomBytes } from 'node:crypto'; +import { readSyncedVault,writeSyncedVault,deleteSyncedVault,validateArchive,type VaultArchive } from '../lib/vault-sync'; +import { getDb } from '../lib/db'; +function archive():VaultArchive { + const vaultId='8492f2d1-a425-4a33-8f44-ea25fe126f06',nonce=randomBytes(12).toString('base64'),ciphertext=randomBytes(48).toString('base64'); + const genotype={ciphertext,encoding:'gzip' as const,nonce,revision:1,vaultId,version:2 as const}; + return {version:2,mac:randomBytes(32).toString('base64'),envelope:{version:2,vaultId,revision:1,encoding:'gzip',nonce,ciphertext,genotype,genotypeDigest:createHash('sha256').update(JSON.stringify(genotype)).digest('hex')},wrappedKey:{version:2,vaultId,kdf:'Argon2id-64MiB-3',salt:randomBytes(16).toString('base64'),nonce,ciphertext}}; +} +test('ciphertext-only schema validates references, bounds and key wrappers',()=>{ + const a=archive();assert.deepEqual(validateArchive(a),a); + assert.throws(()=>validateArchive({...a,envelope:{...a.envelope,revision:0}})); + assert.throws(()=>validateArchive({...a,envelope:{...a.envelope,genotypeDigest:'0'.repeat(64)}})); + assert.throws(()=>validateArchive({...a,wrappedKey:{...a.wrappedKey,kdf:'weak'}})); + assert.throws(()=>validateArchive({...a,mac:''})); +}); +test('encrypted sync CAS, account isolation, delta uploads and deletion races',{skip:process.env.VAULT_DB_TEST!=='true'},async()=>{ + assert.match(process.env.POSTGRES_DB||'',/^postgres(?:ql)?:\/\/[^@]*@(?:127\.0\.0\.1|localhost):\d+\//); + const wallet='0x'+randomBytes(20).toString('hex'),other='0x'+randomBytes(20).toString('hex'),a=archive(); + try { + const initial=await Promise.allSettled(Array.from({length:5},()=>writeSyncedVault(wallet,0,a))); + assert.equal(initial.filter(x=>x.status==='fulfilled').length,1); + assert.equal((await readSyncedVault(other)).archive,null); + assert.deepEqual((await readSyncedVault(wallet)).archive,a); + assert.equal((await readSyncedVault(wallet,1)).archive,null); + assert.equal((await readSyncedVault(wallet,0,a.envelope.genotypeDigest)).archive.envelope.genotype,undefined); + const delta=JSON.parse(JSON.stringify(a));delete delta.envelope.genotype;delta.envelope.revision=2; + const writes=await Promise.allSettled(Array.from({length:5},()=>writeSyncedVault(wallet,1,delta))); + assert.equal(writes.filter(x=>x.status==='fulfilled').length,1); + assert.deepEqual((await readSyncedVault(wallet)).archive.envelope.genotype,a.envelope.genotype); + await assert.rejects(deleteSyncedVault(wallet,1),/changed/); + await assert.rejects(writeSyncedVault(other,0,delta),/Invalid encrypted archive/); + await deleteSyncedVault(wallet,2); + await assert.rejects(writeSyncedVault(wallet,2,a),/removed/); + assert.equal((await readSyncedVault(wallet)).archive,null); + } finally{await getDb().query('DELETE FROM encrypted_user_vaults WHERE wallet=ANY($1::text[])',[[wallet,other]]);await getDb().end();} +}); From 7bf0e86fa188190927abb6c2294552a996e83b55 Mon Sep 17 00:00:00 2001 From: Vishakh Vishakh Date: Wed, 21 Oct 2026 18:53:52 +0000 Subject: [PATCH 08/16] Harden sync races, isolate encryption keys, and verify cross-device recovery --- app/api/vault-sync/route.ts | 6 ++- app/components/CustomizationModal.tsx | 8 ++++ app/portable-vault/page.tsx | 2 +- .../explorer/SecureDataVaultTest.kt | 5 +++ .../explorer/DeviceAuthentication.kt | 1 - .../com/monadicdna/explorer/ExplorerModel.kt | 20 +++++---- .../monadicdna/explorer/SecureDataVault.kt | 1 + apps/ios/Explorer/ExplorerStore.swift | 18 ++++---- apps/ios/Explorer/SecureDataVault.swift | 1 + .../ExplorerTests/SecureDataVaultTests.swift | 8 ++++ crates/explorer-core/src/reports.rs | 1 + crates/explorer-core/src/vault.rs | 17 +++++--- docs/clients.md | 6 ++- docs/secure-data-vault.md | 2 +- privacy_policy.md | 42 ++++++++++--------- tests/core.test.mjs | 4 ++ tests/vault-format.mjs | 5 ++- tests/vault-sync.test.ts | 14 +++++++ 18 files changed, 110 insertions(+), 51 deletions(-) diff --git a/app/api/vault-sync/route.ts b/app/api/vault-sync/route.ts index 88381fc..e2d4cb0 100644 --- a/app/api/vault-sync/route.ts +++ b/app/api/vault-sync/route.ts @@ -3,10 +3,11 @@ import { verifyWalletAuth } from '@/lib/dynamic-auth'; import { deleteSyncedVault, MAX_SYNC_BYTES, readSyncedVault, VaultSyncError, writeSyncedVault } from '@/lib/vault-sync'; export const runtime='nodejs'; async function body(request:Request):Promise> { + if(Number(request.headers.get('content-length'))>MAX_SYNC_BYTES)throw new VaultSyncError('Encrypted vault is too large',413); const reader=request.body?.getReader();if(!reader) throw new VaultSyncError('Missing request'); const parts:Uint8Array[]=[];let size=0; while(true) {const {done,value}=await reader.read();if(done) break;size+=value.length;if(size>MAX_SYNC_BYTES){await reader.cancel();throw new VaultSyncError('Encrypted vault is too large',413);}parts.push(value);} - try{return JSON.parse(Buffer.concat(parts).toString('utf8'));}catch{throw new VaultSyncError('Invalid request');} + try{const value=JSON.parse(Buffer.concat(parts).toString('utf8'));if(!value || typeof value!=='object' || Array.isArray(value))throw new Error();return value;}catch{throw new VaultSyncError('Invalid request');} } async function wallet(request:Request,value:unknown) { if(process.env.VAULT_SYNC_ENABLED!=='true') throw new VaultSyncError('Encrypted sync is not configured',503); @@ -19,10 +20,11 @@ function failure(error:unknown) {const known=error instanceof VaultSyncError?err export async function POST(request:Request) { try { const data=await body(request), owner=await wallet(request,data.walletAddress); + if(['write','delete'].includes(String(data.action)) && typeof data.baseRevision!=='number')throw new VaultSyncError('Invalid sync revision'); switch(data.action) { case 'read':return NextResponse.json(await readSyncedVault(owner,typeof data.knownRevision==='number'?data.knownRevision:undefined,typeof data.knownGenotype==='string'?data.knownGenotype:undefined),{headers:{'Cache-Control':'no-store'}}); case 'write':return NextResponse.json({revision:await writeSyncedVault(owner,Number(data.baseRevision),data.archive as Parameters[2])},{headers:{'Cache-Control':'no-store'}}); - case 'delete':await deleteSyncedVault(owner,Number(data.baseRevision));return NextResponse.json({deleted:true}); + case 'delete':await deleteSyncedVault(owner,Number(data.baseRevision));return NextResponse.json({deleted:true},{headers:{'Cache-Control':'no-store'}}); default:throw new VaultSyncError('Invalid sync action'); } } catch(error) {return failure(error);} diff --git a/app/components/CustomizationModal.tsx b/app/components/CustomizationModal.tsx index 1ecaedd..fdb8a2c 100644 --- a/app/components/CustomizationModal.tsx +++ b/app/components/CustomizationModal.tsx @@ -32,6 +32,7 @@ export default function CustomizationModal({ isOpen, onClose }: CustomizationMod const [alcoholUse, setAlcoholUse] = useState(''); const [medications, setMedications] = useState(''); const [diet, setDiet] = useState(''); + const [additionalContext, setAdditionalContext] = useState(''); useEffect(() => { if (isOpen) { @@ -64,6 +65,7 @@ export default function CustomizationModal({ isOpen, onClose }: CustomizationMod setAlcoholUse(customization.alcoholUse || ''); setMedications((customization.medications || []).join(', ')); setDiet(customization.diet || ''); + setAdditionalContext(customization.additionalContext || ''); } else { setIsUnlockMode(false); // Reset form for new customization @@ -78,6 +80,7 @@ export default function CustomizationModal({ isOpen, onClose }: CustomizationMod setAlcoholUse(''); setMedications(''); setDiet(''); + setAdditionalContext(''); } } }, [isOpen, status, customization]); @@ -136,6 +139,7 @@ export default function CustomizationModal({ isOpen, onClose }: CustomizationMod alcoholUse: alcoholUse as any, medications: medications.split(',').map(s => s.trim()).filter(Boolean), diet: diet as any, + additionalContext, }; await saveCustomization(data, needsPassword ? password : undefined); @@ -395,6 +399,10 @@ export default function CustomizationModal({ isOpen, onClose }: CustomizationMod

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 literal 0 HcmV?d00001 diff --git a/apps/ios/Explorer/Fonts/SpaceGrotesk-Bold.ttf b/apps/ios/Explorer/Fonts/SpaceGrotesk-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8a8611a5836243678f08e7b5081afee916be03b9 GIT binary patch literal 86516 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 literal 0 HcmV?d00001 diff --git a/apps/android/app/src/main/res/font/space_grotesk_bold.ttf b/apps/android/app/src/main/res/font/space_grotesk_bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8a8611a5836243678f08e7b5081afee916be03b9 GIT binary patch literal 86516 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

+
+ +