i got it....I can know see different color based I mean as i defined the colour of samples based on the order of my sample, another issue how do i get to label those data points , not in terms of genes, but as labelling them in terms of sample as legend , in terms of color you have defined ...
I m doing PCA along with RTNSE on my data set .My code
data<- read.csv('module500.csv',header = T,row.names = 1)
head(data)
set.seed(1) # set random seed
rtsne_out <- Rtsne(as.matrix(data), pca = FALSE, verbose = TRUE)
# plot 2D t-SNE projection
plot(rtsne_out$Y, asp = 1, pch = 20, col = "red",
cex = 0.75, cex.axis = 1.25, cex.lab = 1.25, cex.main = 1.5,
xlab = "t-SNE dimension 1", ylab = "t-SNE dimension 2",
main = "2D t-SNE projection")
My example data file contains following data
HSC_mean CMP_mean GMP_mean Mono_mean Granulocyte_mean
The dim is about
> dim(data)
[1] 499 5
Im getting an image like this tnse output
Im trying how to label the cluster since this is about 499 genes and 5 sample so how do i label those I mean since I have 5 sample so 5 different colour which can label those cluster , Im not sure how do they do in the paper which i came across label each cluster...any help or suggestion would be highly appreciated
Just to make my what i'm trying to say have a look at this figure from this paper tsne figure b and the rest
1 answer
You would just have to supply a colour vector to the col parameter of plot(). In your example, you just select "red", so, everything is red. The colour vector should match the order of samples in your t-SNE object that you're plotting. In your case, that's however they are ordered in rtsne_out$Y
To create a colour vector for a list of factors or just text, do something like this:
samples <- c(rep("HSC_mean",2), rep("CMP_mean",4), rep("GMP_mean",6), rep("Mono_mean",8), rep("Granulocyte_mean", 10))
samples
[1] "HSC_mean" "HSC_mean" "CMP_mean" "CMP_mean"
[5] "CMP_mean" "CMP_mean" "GMP_mean" "GMP_mean"
[9] "GMP_mean" "GMP_mean" "GMP_mean" "GMP_mean"
[13] "Mono_mean" "Mono_mean" "Mono_mean" "Mono_mean"
[17] "Mono_mean" "Mono_mean" "Mono_mean" "Mono_mean"
[21] "Granulocyte_mean" "Granulocyte_mean" "Granulocyte_mean" "Granulocyte_mean"
[25] "Granulocyte_mean" "Granulocyte_mean" "Granulocyte_mean" "Granulocyte_mean"
[29] "Granulocyte_mean" "Granulocyte_mean"
require("RColorBrewer")
colours <- factor(samples, levels=c("HSC_mean", "CMP_mean", "GMP_mean", "Mono_mean", "Granulocyte_mean"))
colours <- colorRampPalette(c("royalblue", "red3", "forestgreen", "gold", "black"))(length(unique(colours)))[factor(colours)]
plot(1:length(colours), col=colours, pch=18, type="h", lwd=10)
You can also just assign a pre-defined colour palette from colour brewer, such as Greys, Spectral, PRGn, RdBu, or something else (here, Greys).
colours <- factor(samples, levels=c("HSC_mean", "CMP_mean", "GMP_mean", "Mono_mean", "Granulocyte_mean"))
colours <- colorRampPalette(brewer.pal(9, "PRGn"))(length(unique(colours)))[factor(colours)]
plot(1:length(colours), col=colours, pch=18, type="h", lwd=10)
PS - to see all available palettes, type: require("RColorBrewer"); display.brewer.all()
To label them after you have already called plot() (but it will be difficult to label all of them), you will need another vector, this time of names:
text(rtsne_out$Y, labels=MyLabels)
okay can i just show my color code as legend ? i think it would be difficult to put those in the plot
Yes, actually, when I was in the gym this morning thinking about your question, I thought that it would be easier to just show a legend. Refer to our other thread: C: heatmap data frame annotation issue
Log in to answer this question.

