skbio.diversity.beta.unweighted_unifrac

skbio.diversity.beta.unweighted_unifrac(u_counts, v_counts, otu_ids, tree, validate=True)[源代码]

计算未加权UniFrac

状态:从0.4.1开始试验。

参数:
  • u_counts (list, np.array) -- 两个样品的OTUS计数/丰度向量。长度必须相等。

  • v_counts (list, np.array) -- 两个样品的OTUS计数/丰度向量。长度必须相等。

  • otu_ids (list, np.array) -- 与中的提示名称对应的OTU ID的矢量 tree 。长度必须与 u_countsv_counts

  • tree (skbio.TreeNode) -- 在OTU_ID中关联OTU的树。树中的尖端名称集可以是 otu_ids ,但不是子集。

  • validate (bool, optional) -- 如果 False ,将不执行输入验证。此步骤可能很慢,因此如果在其他地方运行验证,则可以在此处禁用它。但是,无效的输入数据可能导致无效的结果或难以解释的错误消息,因此如果您不确定输入数据是否有效,则不应跳过此步骤。看到了吗 skbio.diversity 有关验证所需内容的说明,以便确定是否可以安全地禁用验证。

返回:

两个采样之间的未加权UniFrac距离。

返回类型:

float

抛出:

ValueError, MissingNodeError, DuplicateNodeError -- 如果验证失败。确切的错误将取决于什么是无效的。

备注

未加权UniFrac最初在中描述 [1]. 未加权(定性)和加权(定量)多样性度量的讨论在 [2]. 这一指标的更深层次的数学讨论在 [3].

如果计算多对样本的未加权UniFrac,请使用 skbio.diversity.beta_diversity 将比对每个示例单独调用此函数快得多。

这个实现不同于在PyCogent中的实现(因此QIIME版本低于2.0.0),它对输入施加了一些额外的限制。首先,输入树必须是根的。在PyCogent中,如果提供的无根树只有一个三叉节点(无根树的Newick约定),则该节点被视为树的根。接下来,所有OTU ID都必须是树中的TIPS。PyCogent会默默忽略没有出现在树中的OTU ID。要使用SCISKIT-BIO从PyCogent复制UniFrac结果,请确保您的PyCogent UniFrac计算是在有根的树上执行的,并且所有OTU ID都存在于该树中。

此未加权UniFrac的实现是基于数组的实现,如 [4].

如果使用大量样本或大树,我们建议使用优化的UniFrac库 [5].

引用

示例

假设我们有以下两个样本的丰富数据, uv ,表示为一对计数向量。这些计数表示在每个样本中观察到特定操作分类单元(OTU)的次数。

>>> u_counts = [1, 0, 0, 4, 1, 2, 3, 0]
>>> v_counts = [0, 1, 1, 6, 0, 1, 0, 0]

因为UniFrac是一个系统进化多样性度量,所以我们需要知道每个计数对应于哪个OTU,我们将以 otu_ids

>>> otu_ids = ['OTU1', 'OTU2', 'OTU3', 'OTU4', 'OTU5', 'OTU6', 'OTU7',
...            'OTU8']

我们还需要一个将OTUS彼此联系起来的系统发育树。

>>> from io import StringIO
>>> from skbio import TreeNode
>>> tree = TreeNode.read(StringIO(
...                      '(((((OTU1:0.5,OTU2:0.5):0.5,OTU3:1.0):1.0):0.0,'
...                      '(OTU4:0.75,(OTU5:0.5,((OTU6:0.33,OTU7:0.62):0.5'
...                      ',OTU8:0.5):0.5):0.5):1.25):0.0)root;'))

然后我们可以计算样本之间的未加权UniFrac距离。

>>> from skbio.diversity.beta import unweighted_unifrac
>>> uu = unweighted_unifrac(u_counts, v_counts, otu_ids, tree)
>>> print(round(uu, 2))
0.37