В настоящее время я использую pheatmap в R для создания тепловой карты выражений генов из данных отдельной ячейки.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я не могу воспроизвести относительную цветовую шкалу, используемую вдругие генераторы тепловых карт, такие как Morpheus: https://software.broadinstitute.org/morpheus/
Для уточнения, у Morpheus цветовая шкала может быть привязана к минимальному и максимальному значениям выражения для каждой строки.Например, предполагая, что цветовая шкала проста, как c('dark_blue', 'blue', 'bright_blue', 'white', 'bright_red', 'red', 'dark_red')
, и я предоставляю матрицу, которая выглядит как t(data.frame(row1=c(0, 1, 2, 3, 4, 5, 6), row2=c(10, 11, 12, 13, 14, 15, 16))),
Морфеус закрасит 0 темно-синим и 6 темно-красным цветом в первом ряду, тогда как 10 будет темно-синим, а 16 будеттемно-красный во втором ряду.Цветная полоса представляет относительные минимальные и максимальные значения для каждой строки.
Обратите внимание, что это не то же самое, что простое масштабирование данных, что я и делал в pheatmap.Проблема в том, что если у меня что-то вроде t(data.frame(row1=c(1, 2, 3, 4, 5, 6), row2=c(10, 0, 0, 0, 0, 0)))
, то даже масштабирование данных не позволит темно-красному цвету 6 (~ 1,34 после масштабирования), поскольку цветовая шкала привязана к минимуму (~ -0,41 после масштабирования)и максимум (~ 2,04 после масштабирования) для всей тепловой карты.
Я не сомневаюсь, что есть простой способ добиться этого, но я не смог понять это, просматривая основную документацию.Я также понимаю, что отображение тепловой карты таким способом не позволит проводить сравнение между генами, но это не особенно важно для моего использования.