Open ahmohamed opened 5 years ago
First of all, thanks a lot for this awesome package.
Currently, plotting fails with an ambiguous message if row/col annotation is continuous and contains missing values:
library(iheatmapr) library(datasets) library(reshape2) Indometh_matrix <- acast(Indometh, Subject ~ time, value.var = "conc") Indometh_matrix <- Indometh_matrix[as.character(1:6),] rownames(Indometh_matrix) <- paste("Patient",rownames(Indometh_matrix)) Indometh_patient_cor <- cor(t(Indometh_matrix)) patient_max_conc <- apply(Indometh_matrix,1,max) patient_min_conc <- apply(Indometh_matrix,1,min) patient_groups <- c("A","A","B","A","B","A") # Arbitrary groups patient_max_conc[[1]] <- NA iheatmap(Indometh_patient_cor, row_annotation = data.frame("Max" = patient_max_conc)) # Error in if (diverging) { : missing value where TRUE/FALSE needed
The issue stems from these lines not using na.rm=TRUE https://github.com/ropensci/iheatmapr/blob/b9fd1bc2bdbbfdd1084619dfd85fb7480b2ff4f7/R/annotations.R#L70-L73
na.rm=TRUE
https://github.com/ropensci/iheatmapr/blob/b9fd1bc2bdbbfdd1084619dfd85fb7480b2ff4f7/R/annotations.R#L161-L164
Alternatively, you can modify pick_conitnuous_colors to accommodate diverging=NA.
pick_conitnuous_colors
diverging=NA
Cheers.
Thanks for bringing up the issue and identifying the code responsible -- have now put in a PR with a fix for this!
First of all, thanks a lot for this awesome package.
Currently, plotting fails with an ambiguous message if row/col annotation is continuous and contains missing values:
The issue stems from these lines not using
na.rm=TRUE
https://github.com/ropensci/iheatmapr/blob/b9fd1bc2bdbbfdd1084619dfd85fb7480b2ff4f7/R/annotations.R#L70-L73https://github.com/ropensci/iheatmapr/blob/b9fd1bc2bdbbfdd1084619dfd85fb7480b2ff4f7/R/annotations.R#L161-L164
Alternatively, you can modify
pick_conitnuous_colors
to accommodatediverging=NA
.Cheers.