调整 R 中 heatmap.2 函数 (gplots) 的底层代码,以更改跟踪参数

Adjust underlying code for the heatmap.2 function (gplots) in R, to change the trace argument

我想调整 R 中 heatmap.2 函数代码中的 trace 参数(热图中可见的线分割),最终删除虚线,但保留实线。更一般地说,我还想学习如何调整用户定义的函数。

我在此处找到了有关如何执行此操作的建议:https://support.bioconductor.org/p/42819/

但是,当我调整代码中的任何内容时(例如跟踪参数的行类型)(使用函数 fix() 或使用另一个名称但使用相同的代码创建一个新函数),我开始得到在 R 中找不到某些函数的错误,例如 invalid() 和 plot.dendrogram()。我为这些功能安装了单独的包,但这并没有解决问题。更糟糕的是,当使用 fix() 方法时,heatmap.2 从那一点开始不断出现这些错误,即使我撤消了代码更改,我也必须重新安装 gplots 包。

我不明白heatmap.2函数是如何运行它们没有问题的,但是当我调整代码时,这些底层函数再也找不到了。

TLDR:如何在 R 中安全地调整函数,尤其是 heatmap.2 函数?

如有任何帮助,我们将不胜感激。

通常你应该能够通过 运行 heatmap.2 获取所有代码而不需要任何选项(很多)然后复制它并将它分配给你的 bioconductor 中建议的新函数.这是普遍接受的方法。我不认为这里需要 fix() 方法,因为它确实会覆盖您工作区中的对象(即,除非您清除工作区,否则更改的 heatmap.2 将优先)。 为了您的方便,我创建了一个包含普通代码的要点并将其分配给一个新函数。我会将其粘贴到您的工作目录中的新文件(例如 heatmap3.R)和当前分析脚本中的 source("heatmap3.R") 中。当然你可能需要编辑这个文件,我已经注释掉了我认为是虚线的第 345-348 行和 359-362 行。这应该是尝试调整现有功能时的一般策略(除非它们是 S4/S3 或内部功能,否则事情会变得更加棘手)

<script src="https://gist.github.com/FMKerckhof/9dd986191570bec2d68fa50122c22e3a.js"></script>