Скорректируйте базовый код для функции heatmap.2 (gplots) в R, чтобы изменить аргумент трассировки.

Я хотел бы настроить аргумент трассировки (разделения строк, видимые на тепловой карте) в коде функции Heatmap.2 в R, чтобы в конечном итоге удалить пунктирные линии, но сохранить сплошные линии. В более общем плане я также хотел бы узнать, как настроить пользовательские функции.

Я нашел предложение о том, как это сделать здесь: https://support.bioconductor.org/p/42819/.

Однако, когда я что-то корректирую в коде (например, тип строки для аргумента трассировки) (используя функцию fix() или создавая новую функцию с другим именем, но с тем же кодом), я начинаю получать ошибки, связанные с некоторыми функциями. не найдено в R, например, invalid() и plot.dendrogram(). Я установил отдельные пакеты для этих функций, но это не решает проблему. Еще хуже то, что при использовании подхода fix() Heatmap.2 продолжает получать эти ошибки с этого момента, даже если я отменяю изменение кода и мне приходится переустанавливать пакет gplots.

Я не понимаю, как функция heatmap.2 запускает их без проблем, но когда я корректирую код, эти базовые функции больше не обнаруживаются.

TLDR: как я могу безопасно настроить функции в R, в частности, функциюheatmap.2?

Любая помощь будет оценена по достоинству.


person Jason    schedule 24.10.2017    source источник


Ответы (1)


Обычно вы должны иметь возможность просто получить весь код, запустив heatmap.2 без каких-либо опций (это много), а затем скопировать его и назначить новой функции, как это предлагается в вашем биопроводнике. Это общепринятый способ сделать это. Я не думаю, что подход fix() здесь желателен, потому что он действительно перезаписывает объект в вашем рабочем пространстве (т.е. если вы не очистите свое рабочее пространство, измененный heatmap.2 будет иметь приоритет). Для вашего удобства я создал gist, который содержит обычный код и назначает его новой функции. Я бы вставил это в новый файл (например, heatmap3.R) в ваш рабочий каталог и source("heatmap3.R") в ваш текущий скрипт анализа. Конечно, вам может понадобиться отредактировать этот файл, я уже закомментировал строки 345-348 и 359-362, которые, я думаю, отвечают за пунктирные линии. Это должно быть общей стратегией при попытке адаптировать существующие функции (если они не являются S4/S3 или внутренними функциями, тогда все становится сложнее)

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

person FM Kerckhof    schedule 25.10.2017
comment
К вашему сведению, очень хорошая функция тепловой карты, которую вы можете найти в пакете NMF, называется она NMF::aheatmap: cran.r-project.org/web/packages/NMF/vignettes/heatmaps.pdf - person FM Kerckhof; 25.10.2017