1个不稳定版本

0.1.0 2024年2月5日

#1616算法

每月36次下载

MIT许可证

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}");
}

这个实现省略了其他实现中看到的'验证'算法。

  1. Olshen, Adam B. 等。 "基于数组的DNA拷贝数数据分析的循环二分分割。" 生物统计学 5.4 (2004): 557-572。
  2. 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));

这个实现省略了其他实现中看到的'验证'算法。

  1. Olshen, Adam B. 等。 "基于数组的DNA拷贝数数据分析的循环二分分割。" 生物统计学 5.4 (2004): 557-572。
  2. https://github.com/jeremy9959/cbs/blob/master/cbs.py

依赖项

~315KB