Jeg prøver at bruge t-SNE-algoritmen på nogle mikroarrays-data. Mere specifikt har min dataramme 18600 kolonner med gener (funktioner) og 72 rækker med betingelser med replikater (10xWt, 10xTg osv.). Udtryksværdierne er i log2-skala.
Her er den kode, som jeg prøver at køre.
# t-SNE implementeringsbibliotek (Rtsne) set.seed (1 ) for (i i 1:15) {tsne = Rtsne (data.T [, - 18601], dæmpes = 2, perplexitet = i, verbose = SAND, max_iter = 1000, pca = T) farver = regnbue (længde (unik (data.T $ klasser))) navne (farver) = unik (data.T $ klasser) plot (tsne $ Y, t = 'n', main = "tsne") tekst (tsne $ Y, labels = data. T $ klasser, col = farver [data.T $ klasser]) readline (prompt = "Tryk [enter] for at fortsætte")}
Bemærk, at jeg ikke tæller kolonnen 18601 fordi disse søjler indeholder etiketter / klasser for hver betingelse.
Tanken her er, at når jeg udfører dette script, returnerer R mig denne fejl:
Fejl: beskyt (): protection stack overflow
Skal jeg ændre --max-pp-size
eller det er en fejl i Rtsne-pakke?
Jeg spekulerede også på, om det er mere meningsfuldt at køre tSNE-algoritmen ved ikke at bruge log2-værdierne på ekspressionsniveauet men logfolden ændrer værdier i forhold til Wt-tilstanden (vildtype). Jeg spørger, fordi jeg ikke kunne finde en sådan anden implementering af tSNE på microarray-data.
For konfigurationen af Rtsne-funktionen læste jeg denne artikel
Ethvert andet forslag til gennemførelsen hilses velkommen.