1个不稳定版本
0.1.0 | 2024年2月5日 |
---|
#1616 在 算法
每月36次下载
9KB
160 行
cbsrs
cbsrs
包实现了基于(2)的循环二分分割算法(1)。
它提供了一个非常简单的API,作为一个仅对 Vec<usize>
操作的trait。
use cbsrs::CBS;
let steps: Vec<usize> = vec![1, 1, 1, 3, 3, 2, 1, 2, 3, 300, 310, 321, 310, 299];
let shuffles = 1000;
let p = 0.05;
let res = steps.cbs(shuffles, p).unwrap();
for (start, end) in res.iter() {
println!("{start}-{end}");
}
这个实现省略了其他实现中看到的'验证'算法。
- Olshen, Adam B. 等。 "基于数组的DNA拷贝数数据分析的循环二分分割。" 生物统计学 5.4 (2004): 557-572。
- https://github.com/jeremy9959/cbs/blob/master/cbs.py
lib.rs
:
cbsrs
包实现了基于(2)的循环二分分割算法(1)。
它提供了一个非常简单的API,作为一个仅对 Vec<usize>
操作的trait。
use cbsrs::CBS;
let steps: Vec<usize> = vec![1, 1, 1, 3, 3, 2, 1, 2, 3, 300, 310, 321, 310, 299];
let shuffles = 1000;
let p = 0.05;
println!("{:?}", steps.cbs(shuffles, p));
这个实现省略了其他实现中看到的'验证'算法。
- Olshen, Adam B. 等。 "基于数组的DNA拷贝数数据分析的循环二分分割。" 生物统计学 5.4 (2004): 557-572。
- https://github.com/jeremy9959/cbs/blob/master/cbs.py
依赖项
~315KB