#index #input-file #file-path #schoener #niche-overlap

app schoenerd

Schoener 的 D 指数计算器,用于物种重叠的生态位

1 个不稳定版本

0.1.0 2023 年 6 月 10 日

#291 in 科学

GPL-3.0-only

40KB
696

schoenerd

GitHub releases GitHub source size GitHub open issues GitHub open pull requests GitHub sponsors Crates.io downloads Crates.io version GitHub license

Packaging status Packaging status Packaging status

Schoener 的 D 指数计算器,用于物种重叠的生态位。

D_{ij} = 1 - \frac{1}{2} \sum_{k = 1}^{S} \left\lvert P_{ik} - P_{jk} \right\rvert

schoenerd 是一个 CLI 程序,旨在通过利用共同资源来计算物种对之间的 Schoener 的 D 指数

安装

从源码构建[^2]

以下构建说明从 git master 分支编译并安装 schoenerd。它们假定系统上已安装 Rust stable 工具链(或任何版本 >= 1.70.0),以及 just 命令运行器。

git clone https://github.com/marcoradocchia/schoenerd
cd schoenerd
just build
sudo just install

默认情况下,安装前缀设置为 /usr/local。要使用不同的安装前缀,请通过 PREFIX 环境变量指定它,如下所示: PREFIX=<prefix> sudo just install,其中 <prefix> 是所需路径的占位符。

注意justfile 中的 install 脚本是 Linux 专用,在其他平台不可用。要在非 Linux 平台上安装 schoenerd,需要手动安装构建工件(二进制文件、补全脚本、手册页等)。

GitHub 版本

最新版本的预编译二进制文件[^4]、shell 补全脚本[^5]和手册页均可在 GitHub 版本中找到。

Cargo

使用 Rust 的 cargo 包管理器在任何平台上(Linux、Windows、macOS 等)都可以安装。

注意cargoschoenerd 二进制文件安装到 $CARGO_HOME/bin,但会忽略 shell 完整性和 man 页。如果您需要其中任何一个,请考虑使用其他安装选项。

主分支

从 git 主分支在任何平台上使用 cargo 构建 和 安装

cargo install --git https://github.com/marcoradocchia/schoenerd --branch master

crates.io

在任何平台上使用 cargo 从最新版本构建 和 安装

cargo install schoenerd

Arch 用户仓库

对于 Arch Linux 用户,软件包可在 Arch User Repository 中找到

警告schoenerdschoenerd-binschoenerd-git AUR 软件包互斥且相互冲突。

您可以使用 AUR 辅助工具安装上述软件包之一,例如 yay

yay -S schoenerd-bin # or `schoenerd`, or `schoenerd-git`

paru

paru -S schoenerd-bin # or `schoenerd`, or `schoenerd-git`

用法

schoenerd 可以接受来自 stdin 或输入文件(使用 -i/--input 选项)的输入数据,并将输出数据输出到 stdout 或输出文件(使用 -o/--output 选项)。这使得 schoenerd 可以作为独立程序使用,也可以在 UNIX 管道中使用,这使得它非常适合与其他程序或脚本一起使用。

输入格式

输入数据必须格式化为一个 Comma Separated Value 表格。以下数据表为例

Bombus lapidarius Bombus mesomelas Bombus pascuorum Bombus pratorum
Carduus chrysacanthus 0 0 0 1
Carlina acaulis 0 0 1 0
Stachys germanica 18 5 14 134
Trifolium pratense 0 1 0 1
Trifolium repens 0 4 0 6
Oxytropis campestris 3 153 0 53

如果想要计算每个传粉者的 Schoener's D 指数,表格的列标题应包含每个传粉物种,而行标题应包含表示可用资源的每个植物物种。每个交点单元格必须表示每个植物/传粉者对之间的非负整数值(例如,访问次数)。

schoenerd 需要这样的表格以 CSV 格式序列化,如下所示

,Bombus pratorum,Bombus lapidarius,Bombus mesomelas,Bombus pascuorum
Carduus chrysacanthus,1,0,0,0
Carlina acaulis,0,0,0,1
Stachys germanica,134,18,5,14
Trifolium pratense,1,0,1,0
Trifolium repens,6,0,4,0
Oxytropis campestris,53,3,153,0

输出格式

默认情况下,schoenerd 生成如下所示的 CSV 格式输出

FIRST SPECIES,SECOND SPECIES,D INDEX
Bombus pratorum,Bombus lapidarius,0.8300366300366301
Bombus pratorum,Bombus mesomelas,0.3321378008494573
Bombus pratorum,Bombus pascuorum,0.6871794871794872
Bombus lapidarius,Bombus mesomelas,0.17353198948290982
Bombus lapidarius,Bombus pascuorum,0.8571428571428571
Bombus mesomelas,Bombus pascuorum,0.030674846625766916

输出数据的每条记录(行)包含三个由 CSV 标题描述的字段:前两个字段包含第三字段中报告 D 指数的两个传粉物种。

美化表格

使用 -p/--pretty-table 标志,输出格式化为表格以快速可视化数据。使用相同的输入,生成的结果是以下表格的 ASCII 版本

第一物种 第二物种 D 指数
Bombus pratorum Bombus lapidarius 0.8300366300366301
Bombus pratorum Bombus mesomelas 0.3321378008494573
Bombus pratorum Bombus pascuorum 0.6871794871794872
Bombus lapidarius Bombus mesomelas 0.17353198948290982
Bombus lapidarius Bombus pascuorum 0.8571428571428571
Bombus mesomelas Bombus pascuorum 0.030674846625766916

帮助

schoenerd -h 的输出如下

schoenerd v0.1.0 - Marco Radocchia <marco.radocchia@outlook.com>, Gaia Di Francescantonio <gaiadfa@virgilio.it>
Schoener's D index calculator for niche overlap.

Usage:
  schoenerd [OPTIONS]

Options:
  -i, --input <FILE>
          Input CSV file path
  -f, --input-field-delimiter <CHAR>
          Input CSV field delimiter
  -t, --input-record-terminator <CHAR>
          Input CSV record terminator
  -c, --input-quote-character <CHAR>
          Input CSV quote character
  -o, --output <FILE>
          Output CSV file path
  -F, --output-field-delimiter <CHAR>
          Output CSV field delimiter
  -T, --output-record-terminator <CHAR>
          Output CSV record terminator
  -C, --output-quote-character <CHAR>
          Output CSV quote character
  -n, --disable-output-headers
          Disable output headers
  -s, --sort <DIRECTION>
          Sort output by D index value [possible values: descending, ascending]
  -p, --pretty-table
          Display output as a pretty table on stdout
  -h, --help
          Print help (see more with '--help')
  -V, --version
          Print version

许可

此项目根据 GPLv3 许可。

参考文献[^1]:Schoener, T.W. (1968) Bimini的Anolis蜥蜴:复杂群落中的资源分配。生态学,49,704–726。[^2]:代码schoenerd在所有平台(Linux、Windows、macOs、……)上均可编译,只要正确安装了rustjust,然而justfile中的安装说明目前仅适用于Linux。[^3]:[使用rustup安装](https://rust-lang.net.cn/tools/install)。[^4]:目前仅支持x86_64-linux-gnu。[^5]:目前支持zshbashfish

依赖项

~3–12MB
~106K SLoC