Entering edit mode
6.6 years ago
luzglongoria
▴
50
Hi there,
I would like to do a heat map by using pheatmap. The problem is that when I tried to run it (with a very basic command) I get this error message:
head(dataset)
# A tibble: 6 x 11
ID s21 s22 s23 s24 s25 s31 s32 s33 s34 s35
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 TRINITY_DN31277_c0_… 7.80 2.65e+0 2.12e0 1.93e+0 6.35e+0 0.0258 0.00541 0.00004 0.0132 0.0182
2 TRINITY_DN38059_c1_… 2671. 1.13e+4 1.62e4 1.64e+4 3.13e+4 19.0 4.38 1.61 3.07 7.69
3 TRINITY_DN29156_c0_… 0.960 2.56e+0 2.81e0 2.56e+0 6.93e+0 0.156 0.180 0.0934 0.156 0.0568
4 TRINITY_DN36493_c2_… 0.468 1.10e+0 1.75e0 1.70e+0 4.36e+0 0.0587 0.0907 0.0523 0.0483 0.0928
5 TRINITY_DN22456_c0_… 0.428 1.17e+0 1.71e0 1.42e+0 4.26e+0 0.0862 0.149 0.0845 0.0904 0.0545
6 TRINITY_DN24468_c0_… 0.0965 1.93e-1 0. 1.23e-1 8.12e-2 0 0 0 0 0
pheatmap(as.matrix(dataset))
Error in hclust(d, method = method) :
NA/NaN/Inf in foreign function call (arg 11)
In addition: Warning messages:
1: In dist(mat, method = distance) : NAs introduced by coercion
2: In dist(mat, method = distance) : NAs introduced by coercion
I have been reading and apparently is a problem with removing the zero variance columns in my matrix. but I don't know how to do it.
Any help will be appreciate!
There are some strange entries like
0.and2671.Can you confirm this is indeed in your data or is this a copy/paste error when you made the post?It appears like this when I do head() but the dataset appears like this in R:
https://ibb.co/w01P34W
I have also imported the data by using a .txt file by:
and then if I do:
But it didn't solve the problem:
Well, you obviously cannot cluster the first column,
ID; so, you will have to set that as the rownames and then remove that column from the object before you convert it to a data matrix.Thank you Kevin.
I have tried to do what you have said:
I have checked:
And then I try to do the heatmap by:
And now R doesn't do anything. No error message, no warnings messages.
What I am doing wrongly?
Do you have a plot window or some output stream open? Try running
dev.off()multiple times until that shows an error, and then try thepheatmap()command.Also, what is the output of
str(data)? It will help to see how your columns are encoded.I am not sure that you need these lines:
Usually,
data.matrix()suffices.I have also done the dev.off() and now I get a plot!
The problem is that it doesn't seem to be very informative since I have some very high values and other quite low. but I know that there is significant differences between the two species (s21,22,23,24,25) and (s31,32,33,34,35)
image of the heatmap: https://ibb.co/9qy7xW4
I see, you could try to scale the data (transform to Z-scores) and then set custom breaks:
That is just copied from another example that I did. Please edit as per your needs.
-------------------------
Edit: using my
t(scale(t(x)))code withpheatmap(..., scale = 'none',... )is actually the same as usingpheatmap(..., scale = 'row',... )on its own