内容

这个小插图包括答案和支持材料的地址常见问题,尤其是那些发布在phyloseq问题跟踪器

对于大多数问题phyloseq问题跟踪器应该足够了;但偶尔也会有一些问题被反复问到,所以在这篇小短文中把答案列举出来是合适的。这既是(1)帮助用户更快地找到解决方案,也是(2)减少冗余问题跟踪器

鼓励所有用户进行谷歌搜索,并查看其他问题/回答,包括开放和封闭的问题phyloseq问题跟踪器在通过发布新问题寻求积极回应之前。

图书馆(“phyloseq”);packageVersion(“phyloseq”)
## [1] '1.42.0'
图书馆(“ggplot2”);packageVersion(“ggplot2”)
## [1] '3.3.6'
theme_set (theme_bw ())

1-我试着用phyloseq读取我的biom文件,但它不起作用。怎么了?

导致这种错误的最常见原因是biom文件存储在磁盘上的方式发生了巨大变化。目前有两个生物格式的“版本”,每个版本存储的数据都非常不同。最初的格式(以及phyloseq中的原始支持)是基于生物格式版本1的JSON

最新的版本-版本2 -是基于HDF5文件格式,这个新的biom格式版本最近成为流行工作流(如QIIME)的默认文件输出格式。

1.1好消息:HDF5-biom将在下一个版本中得到支持

biomformat包是支持biom文件格式的R包的Bioconductor化身,由Paul McMurdie (phyloseq作者)和Joseph Paulson (metagenomeSeq作者)编写。虽然它已经在GitHub和BioC-devel上发布了好几个月了,但它的第一个发布版本biomformat将于2016年4月在Bioconductor上发布。在同一版本中,phyloseq将从仅json转换过来biom托管在CRAN上的包到这个新包,biomformat,同时支持基于HDF5或JSON的biom文件。

这种差异对用户来说是不透明的,在4月份的下一个版本发布后,phyloseq将“只能工作”。

使用import_biom功能,读取您最近的QIIME或其他生物格式数据。

中描述了更多的背部细节发行443

1.2HDF5(2.0版本)生物格式:biomformat

正如刚才所描述的,HDF5 biom格式目前在phyloseq的开发版本中得到支持,通过名为biomformat在BioC-devel和GitHub上:

https://github.com/joey711/biomformat

如果需要使用基于hdf5的biom格式文件立即而不能等待即将发布的版本,那么您应该安装开发版biomformat按照上面链接上的说明进行包装。

1.3并非每个数据组件都包含在.biom文件中

尽管bio -format支持对主要组件(如分类法表和示例数据表)的自注释包含,但许多生成bio -format文件的工具(如QIIME、MG-RAST、mother等)并不导出此数据,即使您在数据输入文件中提供了这些信息。这样做的原因让我感到困惑,我已经与QIIME开发人员分享了我对这个问题的看法,但是似乎没有计划将您的示例数据包含在输出biom文件中。bob电竞体育官网

此外,即使我已经向生物格式团队提出了它,目前还没有支持(或支持的时间表)将系统发育树包含在一个“。biom”文件。

有许多教程演示了如何在创建/导入phyloseq对象后向其添加组件。下面的教程尤其相关

http://joey711.github.io/phyloseq-demo/import-biom-sd-example.html

它利用了以下函数:

  • import_qiime_sample_data
  • merge_phyloseq

2-microbio_me_qiime ()返回错误。怎么了?

2.1QIIME-DB服务器永久宕机。

QIIME-DB服务器永久宕机。

建议用户将查询迁移到Qiita。

的确,前面链接到microbio.me / qiime现在将用户发送到新的Qiita网站。

2.2已规划Qiita的接口。

请继续关注。Qiita API需要由Qiita开发人员首先发布。bob电竞体育官网phyloseq开发人员无bob电竞体育官网法控制这一点,因为我们不直接隶属于QIIME开发人员。一旦有了带有文档的官方Qiita API,就会添加一个phyloseq接口。

我们找到了microbio_me_qiime ()在QIIME-DB服务器运行期间,可以非常方便地使用。希望很快就能有一个类似的平台。

3.-我想要一个看起来像…

太棒了!

phyloseq中的每个plot函数都返回一个ggplot2对象.例如,当这些对象在R会话中被“打印”到标准输出时,

数据(食道)plot_tree(食道)

然后将图形呈现在当前图形设备

或者,如果保存来自phyloseq的对象输出plot_作为会话中的变量,然后您可以在空闲时以交互方式进一步修改它。例如,

p1 = plot_tree(食管,color = "Sample"

p1 + ggtitle("This is my title.") + annotation ("text", 0.25, 3, color = "orange", label = "my annotation")

有很多方法可以让您以phyloseq为起点生成自定义图形。

下面的部分列出了我最喜欢的一些。

3.1自己修改ggplot对象。

例如,plot_ordination()示例教程返回的ggplot2对象中编码的图形,提供了使用其他ggplot2命令修改/自定义的几个示例plot_ordination

ggplo2文档是用于创建、修改和使用ggplot2对象进行开发的当前规范的在线引用。

对于美学和美学映射的简单改变,审美规范小插图是一种有用的资源。

3.2p冶炼厂和ggplot2

psmelt函数将phyloseq对象转换为一个表(data.frame),对于定义自定义的ggplot2图形非常友好。这个函数最初是作为phyloseq中的一个内部(不是用户公开的)工具创建的,用于启用从表示为phyloseq对象的微生物组数据构建ggplot2图形的方法。

适用时,系统序列plot_函数使用族psmelt.这个函数现在在phyloseq中是一个文档化的、用户可访问的函数——主要目的是使用户能够根据需要创建自己的ggplot2图形。

有很多关于ggplot2的很棒的文档示例

下面是两个非常简单的使用示例psmelt“从头”定义自己的ggplot2对象。显然,您可以根据自己的需要,添加更多的ggplot2命令来进一步修改每个图。

data(“食道”)mdf = p熔体(食道)#简单柱状图。有关更多信息,请参见plot_bar()。ggplot(mdf, aes(x =样本,y =丰度))+ geom_bar(stat = "identity", position = "stack", color = "black")

#简单的热图。有关更多信息,请参阅plot_heatmap()。ggplot(mdf, aes(x =样本,y = OTU,填充=丰度))+ geom_raster()

3.3提交一个拉请求(高级)

如果您的新自定义绘图函数很棒,并且您认为其他人可能会使用它,请将其添加到“plot-methods。R”源文件并在GitHub上提交拉请求。

GitHub官方拉请求文档

请在您的拉请求中包含的代码中包含示例和测试代码。

我将在下一个版本中尝试将其添加到包中。我也会在函数文档中给你署名。关于GitHub拉请求的更多细节,请参阅下面的“错字修复”部分。

3.4定义一个ggplot2扩展(高级)

用于创建/修改新的几何对象的新R函数/命令的开发现在正式记录在ggplot2扩展小插图

这可能与前一节有关,因为可以将用于phyloseq的ggplot2扩展作为拉请求贡献给phyloseq项目。

4在phyloseq文档、教程或小插图中有一个拼写错误

这实际上是一种更快、更少的方法,可以让您自己解决问题,并对phyloseq包做出贡献。对于微不足道的错字修复,我将快速地将您的修复包含到包代码中。有时我还躺在床上就用手机接受他们。双方都不会浪费时间!:-)

关键是这应该很简单,如果您遵循以下建议之一,就会很简单。

4.1直接在GitHub上修复错别字

GitHub现在提供了通过页面内编辑器直接从web浏览器更改存储库的代码/文本的选项。这将为您处理所有Git细节。如果你有一个GitHub账户,并且你已经登录了,你所要做的就是找到有违规拼写错误的文件,然后使用“编辑”按钮进行更改,并将其作为拉取请求发送给我。

4.2最小化GIT和GitHub练习

以下说明借用自谢益辉关于修复错别字的网站

或者,对于那些想要尝试GIT和Github拉请求的人来说,这使得您可以为开源做出贡献,并毫无疑问地修复明显的问题-只需自己动手,并通过Github将更改发送给原始作者。

对于初学者来说,Github拉请求的官方文档有点冗长。简单的任务基本上你需要做的是:

  1. 点击Fork按钮并在您自己的帐户中克隆存储库;
  2. 在克隆版本中进行更改;
  3. 推送到你的存储库;
  4. 点击Pull Request按钮向原作者发送请求;

5-我读过“不浪费,不匮乏……”但是…

在讨论更具体的问题之前,让我们先适当地区分

这两个概念经常被混为一谈——主要是由使用稀化方法的供应商——错误地坚持认为稀化在某种程度上解决了这两个问题,问题就解决了。不幸的是,稀薄是一种非常低效的、引入噪声的方法,不能很好地解决激发这两个概念的数据分析挑战。

DESeq2和相关解决方案可以帮助您在分析的特定步骤中满足标准化的需求(例如,不同的库大小),同时仍然可以从数据中进行有效的推断。

去噪问题最好在序列处理级别解决,目前可用的最佳通用选项是:

5.1我试过使用DESeq2让我的数据正常化,但现在我不知道该怎么办…

这类问题的答案很大程度上取决于你的实验,以及你想从数据中了解什么。以下是一些可能会有帮助的资源。

5.2我的库/样本有不同的读取总数,我该怎么办?

这是当前测序技术的预期产物,而不是一个“问题”本身。在大多数情况下,总数的差异与实验设计中的任何变量无关。你应该检查一下情况是否如此.在你的实验中,仍然有可能存在结构/程序上的人为因素影响了总数。如果库大小与您的设计变量之一相关,那么可能表示您需要更仔细地处理的工件。这是一个你必须做出并捍卫的决定。没有软件包或工作流可以为您解决这个问题,但是phyloseq/R肯定可以帮助您检查相关性。看到sample_sums ()而且sample_data ()访问器的功能。

除了你的实验中结构偏差的前兆,你应该回忆一下观察类之间的比较在统计学中,样本量不均匀不是一个新问题,也不是没有解决的问题

因此,在这种情况下,您可以使用的最有用的分析方法是预期并解释样本之间读取总数差异的方法。

你怎么解释这些图书馆的规模差异应该取决于您所从事的分析类型,以及您计划使用的方法。例如,对于像Bray-Curtis Dissimilarity这样的beta多样性测量,您可能只使用每个样本中每个类群的相对丰度,因为在计数差异没有意义的情况下,绝对计数不适合直接使用。

有关详细信息,请参见

5.3在进行alpha多样性分析之前,我应该对我的数据进行标准化吗

不。一般来说,答案是没有.当提供原始观测计数值时,大多数alpha多样性方法将是最有效的。

在alpha多样性分析之前,标准化是必要的,这种误导性的概念似乎来自于各种“一刀切”的管道工具,如QIIME,它经常被鼓励这样做精选作为任何/所有分析之前的归一化转换。虽然这可以简化管道软件开发的某些方面,但这在分析和统计上是愚蠢的。在统计学上,稀薄的微生物组数据是不可接受的

为了获得进一步的信息,我建议查阅文献,如

5.4转换后的数据表中的负数?

这类问题通常出现在某人对他们的数据使用类似对数的转换/方差稳定转换之后,为通过排序进行探索性分析做准备。在这种情况下,负值可能对应少于一次计数后重新调节。对于很多排序方法,比如主成分分析在美国,负数不是问题。

相反,这个问题往往是因为用户也想使用一个特定的距离测量它是没有定义的,或者是不稳定的。然而,在这种情况下,一个值越负,它在原始的“原始”计数矩阵中为零或非常小的可能性就越大。对于大多数距离和假设,这些值可能不是很重要,甚至可以忽略不计。鉴于此,做以下其中一种可能是相当合理的:

  1. 将所有小于零的值设置为零。如果X你可以用矩阵来完成这个吗X[X < 0.0] <- 0.0
  2. 在数据转换之前添加伪计数。这通常会限制或防止在转换值的表中出现零。有些人不喜欢这种方法用于他们的数据集,他们可能是正确的,也可能不是。由您来决定您的数据。看到第445期讨论

还请注意,转换后全部为负的分类单元条目,或相当小或几乎总是零的分类单元条目,应该在分析之前从数据中过滤掉。这有很多不同的原因。

5.5我得到了一个几何平均值的误差

看到我的那么,在R中发表其他的几何平均函数有几个例子可以替代几何平均值的计算,其中一些可以解决有误差的问题。

另见上的讨论发行445关于几何均值。

替代的库大小估计器可能适合于您的数据,您有责任确定任何特定的方法是否有效。

Mike Love (DESeq2的开发者)提出了以下考虑:

“另一方面,非常稀疏的计数数据集,每行单个样本的大量计数,其余为0,不太适合负二项分布。这里,VST或者简单的移位对数,日志(计数+ k),可能是一个安全的选择rlog.我测试稀疏性的一种方法是查看单个样本中计数的行和和以及计数的比例。”

5.6假计数不适合我的数据,因为……

看到第445期讨论

另外,仔细考虑你在这里的意思。我怀疑这种说法可以更准确地表述为,伪计数不适合我的实验、数据和我即将执行的分析步骤.因此,在这种情况下,您的立场是基于数据表现方式的组合,以及您对伪计数将如何影响您将要使用的分析的了解。考虑以下几点。

  • 是否有其他的分析方法?
  • 您将要使用的方法对添加伪计数真的那么敏感吗?
  • 是否真的需要伪计数,或者您是否将此步骤复制/粘贴到某个地方的分析脚本中?

5.7我害怕负二项不能很好地符合我的数据

看到第445期讨论

5.8我现在不知道如何测试差异丰度。我怎么做呢?

现在有很多关于这个主题的文档。

对于初学者,请参见专门讨论这个主题的系统序列小插图

谷歌搜索“phyloseq差异丰度”也可能会出现一些有用的相关资源。

6-我需要你帮我分析数据。它有如下的研究设计……

6.1请说得更具体些

最大的问题通常是范围。你与开源包作者的通信应该是非常具体的特性、bug或贡献;答案将有利于其他用户,他们以后可以在搜索中找到这篇文章,或者从新功能/错误修复中受益。

6.2请尊重我的时间(以及其他软件包作者)

包作者只有有限的时间来提供帮助。在包功能/维护和回复用户信件之间有一个不可避免的时间权衡。我的全职工作是在旧金山一家生物技术初创公司担任高级员工数据科学家(全职工作),了解微生物组在人类健康和疾病中的作用。与此同时,phyloseq每月有数千次下载量。这是一个数学事实,我没有时间帮助您分析特定的数据集。你在问题跟踪器上发布的内容可能会被其他人回答,但如果它足够“帮我分析我的数据”这样的问题,我最终会关闭这个问题。

6.3花钱请人帮忙(不是我)

我相信现在有其他的选择可以帮助您进行收费服务的分析。我以前是一家这样的公司的生物统计学家和开发人员,第二基因组公司提供完整的端到端微生物组实验解决方案作为收费服务。在某些情况下,Second Genome的客户已经有了他们的微生物组数据,并希望利用他们训练有素的微生物组分析师团队从他们的实验中获得最多的信息。我建议通过上面的链接联系一位销售助理。如果您正在寻找微生物组数据收集或数据分析方面的合作,请联系第二基因组的精干团队