skbio.diversity.alpha.faith_pd

skbio.diversity.alpha.faith_pd(counts, otu_ids, tree, validate=True)[源代码]

计算Faith的系统发育多样性度量(PD)

状态:从0.4.1开始试验。

参数:
  • counts (1-D array_like, int) -- 一个样本的OTUS计数/丰度向量。

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

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

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

返回:

样本的系统发育多样性(PD)。

返回类型:

float

抛出:

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

备注

费斯的系统发育多样性,通常被称为PD,最初是在 [1].

如果计算多个样本的Faith‘s PD,使用 skbio.diversity.alpha_diversity 将比对每个示例单独调用此函数快得多。

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

Faith的PD实现基于UniFrac的基于数组的实现,如 [2].

引用

示例

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

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

因为Faith PD是一个系统发育多样性度量,所以我们需要知道每个计数对应于哪个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;'))

然后我们可以计算样本的Faith PD。

>>> from skbio.diversity.alpha import faith_pd
>>> pd = faith_pd(u_counts, otu_ids, tree)
>>> print(round(pd, 2))
6.95