13 个不稳定版本 (5 个破坏性更新)

0.6.0 2024年4月16日
0.5.0 2023年9月26日
0.4.0 2023年3月30日
0.4.0-alpha.22022年10月28日
0.1.0 2022年5月27日

#12 in 模拟

Download history 24/week @ 2024-04-24 92/week @ 2024-05-01 63/week @ 2024-05-15 20/week @ 2024-05-22 27/week @ 2024-05-29 15/week @ 2024-06-05 3/week @ 2024-06-12 253/week @ 2024-06-26 877/week @ 2024-07-03 317/week @ 2024-07-10 415/week @ 2024-07-17 51/week @ 2024-07-24 718/week @ 2024-07-31 104/week @ 2024-08-07

1,595 每月下载量
2 个 crate 中使用 (通过 demes-forward)

MIT 许可证

295KB
7K SLoC

Rust 5K SLoC // 0.0% comments Python 2K SLoC // 0.1% comments C 114 SLoC C++ 104 SLoC // 0.0% comments Shell 90 SLoC // 0.1% comments

rust 实现 demes 规范。

引用

如果您在研究中使用了 demes,请引用

Gower, G., A. P. Ragsdale, G. Bisschop, R. N. Gutenkunst, M. Hartfield, E. Noskova, S. Schiffels, T. J. Struck, J. Kelleher, K. R. Thornton (2022) Demes: a standard format for demographic models. Genetics 222 (3):iyac131    

DOI 论文。

示例

此示例从文件中读取模型。模型采用 YAML 格式。读取后,我们遍历模型中的每个种群和每个种群的每个时代。迭代顺序是从过去到现在。

fn main() {
    for input in std::env::args().skip(1) {
        println!("processing file {input}");
        let file = std::fs::File::open(input).unwrap();
        let graph = demes::load(file).unwrap();
        for deme in graph.demes() {
            println!("deme {}", deme.name());
            for epoch in deme.epochs() {
                println!("\tstart size = {}", epoch.start_size());
                println!("\tend size = {}", epoch.end_size());
                println!("\tstart time = {}", epoch.start_time());
                println!("\tend time = {}", epoch.end_time());
            }
        }
    }
}

可以从工作区的根目录运行此示例

cargo run --example iterate_graph -- demes/examples/jouganous.yaml

这里 是一个更丰富的示例。要运行它

cargo run --example iterate_graph_detail -- demes/examples/jouganous.yaml

变更日志

请参阅 此处

依赖项

~4.5–7MB
~126K SLoC