Rust ports of the hot paths found by profiling: fused per-locus GenCall calling and scoring, BAF/LRR, libm maps with CPython math semantics, both nearest-neighbour searches of the normalization fit, and the BPM LocusEntry parser. Address coverage is memoised per IDAT layout. SIMURG_PURE_PYTHON=1 forces the pure paths. On the Pi: genotype_sample 3.4 s -> 1.1 s, 36-sample GSA run 131 s -> 46 s, BPM read 4x faster; 36 GSA + 6 Omni2.5 GTCs and QC tables byte-identical to the pure path; tests/unit/test_core_kernels.py checks every kernel on edge cases. bench/profile_genotype.py, bench/scaling.py, cloud task p9 (thread scaling).
229 lines
5.7 KiB
TOML
229 lines
5.7 KiB
TOML
# This file is automatically @generated by Cargo.
|
|
# It is not intended for manual editing.
|
|
version = 4
|
|
|
|
[[package]]
|
|
name = "autocfg"
|
|
version = "1.5.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
|
|
[[package]]
|
|
name = "heck"
|
|
version = "0.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
|
|
[[package]]
|
|
name = "libc"
|
|
version = "0.2.189"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
|
|
|
|
[[package]]
|
|
name = "matrixmultiply"
|
|
version = "0.3.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3f607c237553f086e7043417a51df26b2eb899d3caff94e6a67592ff992fedc7"
|
|
dependencies = [
|
|
"autocfg",
|
|
"rawpointer",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ndarray"
|
|
version = "0.17.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "520080814a7a6b4a6e9070823bb24b4531daac8c4627e08ba5de8c5ef2f2752d"
|
|
dependencies = [
|
|
"matrixmultiply",
|
|
"num-complex",
|
|
"num-integer",
|
|
"num-traits",
|
|
"portable-atomic",
|
|
"portable-atomic-util",
|
|
"rawpointer",
|
|
]
|
|
|
|
[[package]]
|
|
name = "num-complex"
|
|
version = "0.4.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
|
|
dependencies = [
|
|
"num-traits",
|
|
]
|
|
|
|
[[package]]
|
|
name = "num-integer"
|
|
version = "0.1.47"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b"
|
|
dependencies = [
|
|
"num-traits",
|
|
]
|
|
|
|
[[package]]
|
|
name = "num-traits"
|
|
version = "0.2.19"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
|
dependencies = [
|
|
"autocfg",
|
|
]
|
|
|
|
[[package]]
|
|
name = "numpy"
|
|
version = "0.29.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6a5b15d63a5ff39e378daed0e1340d3a5964703ea9712eb09a0dc66fade996f4"
|
|
dependencies = [
|
|
"libc",
|
|
"ndarray",
|
|
"num-complex",
|
|
"num-integer",
|
|
"num-traits",
|
|
"pyo3",
|
|
"pyo3-build-config",
|
|
"rustc-hash",
|
|
]
|
|
|
|
[[package]]
|
|
name = "once_cell"
|
|
version = "1.21.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
|
|
[[package]]
|
|
name = "portable-atomic"
|
|
version = "1.15.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
|
|
|
|
[[package]]
|
|
name = "portable-atomic-util"
|
|
version = "0.2.8"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715"
|
|
dependencies = [
|
|
"portable-atomic",
|
|
]
|
|
|
|
[[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 = "pyo3"
|
|
version = "0.29.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b"
|
|
dependencies = [
|
|
"libc",
|
|
"once_cell",
|
|
"portable-atomic",
|
|
"pyo3-build-config",
|
|
"pyo3-ffi",
|
|
"pyo3-macros",
|
|
]
|
|
|
|
[[package]]
|
|
name = "pyo3-build-config"
|
|
version = "0.29.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f41027e41b4bd03f6e60f9f417fe24a6341a6bb744edd62b6f709f2a52ea30e9"
|
|
dependencies = [
|
|
"target-lexicon",
|
|
]
|
|
|
|
[[package]]
|
|
name = "pyo3-ffi"
|
|
version = "0.29.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e591a95526fead067432c3b3a33fc74770b87b1e04e73671090d9c2055a2b327"
|
|
dependencies = [
|
|
"libc",
|
|
"pyo3-build-config",
|
|
]
|
|
|
|
[[package]]
|
|
name = "pyo3-macros"
|
|
version = "0.29.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "73225868fc1cd84eef2c3c230ddb91273bf1de46aeb8a4248da76d32a0924a1c"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"pyo3-macros-backend",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "pyo3-macros-backend"
|
|
version = "0.29.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "571575aa3749fa6216757dd47d2a3e7ef360f329a40f0666a9fbd14889024952"
|
|
dependencies = [
|
|
"heck",
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "quote"
|
|
version = "1.0.47"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rawpointer"
|
|
version = "0.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
|
|
|
|
[[package]]
|
|
name = "rustc-hash"
|
|
version = "2.1.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d"
|
|
|
|
[[package]]
|
|
name = "simurg-core"
|
|
version = "1.0.0"
|
|
dependencies = [
|
|
"numpy",
|
|
"pyo3",
|
|
]
|
|
|
|
[[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 = "target-lexicon"
|
|
version = "0.13.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
|
|
[[package]]
|
|
name = "unicode-ident"
|
|
version = "1.0.26"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954"
|