#frequency #spectrum #spectra #site #count #array #sfs

sfs-core

站点频率谱的工具的核心实现

1个不稳定版本

0.1.0 2023年8月31日

#5 in #spectra


用于 sfs-cli

MIT 许可证

165KB
4.5K SLoC

用于处理站点频率谱的工具。

这是sfs CLI的核心库实现,但也可以作为一个独立的库来处理频率谱。

概述

核心结构是一个 Spectrum,它由一个N维的 Array 支持。一个频谱可能是一个 频率 频谱 ([Sfs]),在这种情况下,我们说它是归一化的,或者它可能是一个 计数 频谱 ([Scs])。

示例

作为对API的简要介绍,让我们创建一个计数频谱,然后使用Watterson的估计器将其归一化,以获得每个基的θ估计值。

use sfs_core::Scs;

// Create a 1-dimensional SCS from some data
let scs = Scs::from_vec([25., 8., 4., 2., 1., 0.]);

// Normalize the spectrum to frequencies
let sfs = scs.into_normalized();

// Calculate θ
let theta = sfs.theta_watterson().expect("θ only defined in 1D");

assert!((theta - 0.18).abs() < 1e-16);

依赖项

~4.5MB
~83K SLoC