Search t-sne parameters
In order to find the best t-sne embedding we need to look at all possible parameter combinations. Please implement a function that does a stepwise iteration over t-sne parameters. It should create a grid of plots showing all the different parameter combinations.
Assume that pca was done prior to running this function. Depending on your test data you may have to do this though. If so use scanpy.pp.pca
.
Hint: We already have a function that basically does the same but for umap. Look here
Legacy code
#test different tsne settings
if test_tsne_setting == "True":
labx=[]
laby=[]
fig, axs = plt.subplots(9,5,figsize=(25,45))
c=0
b=0
tsne=[];defntsne=[]
#scanpy.tl.tsne(adata, n_pcs=None, use_rep=None, perplexity=30, early_exaggeration=12, learning_rate=1000, random_state=0, use_fast_tsne=False, n_jobs=None, copy=False, *, metric='euclidean')
for i in range(200,1000,200):
for j in range(10,55,5):
#print(str(c)+' '+str(b)+'\nSpread: '+str(i/10)+' dist: '+str(j/100))
scanpy.tl.tsne(adata=adata, n_pcs= number_of_pcs_for_reduction, perplexity = j, learning_rate = i)
tsne.append(adata.obsm['X_tsne'])
defntsne.append([i,j])
scanpy.pl.tsne(adata, color = metacol, title='', legend_loc = 'none',show=False,ax=axs[c,b])
if c == 0:
axs[c,b].set_title('learningrate: '+str(i))
if b == 0:
axs[c,b].set_ylabel('perplexity: '+str(j))
c=c+1
if c > 8:
c=0
b=b+1
plt.tight_layout()
plt.savefig(fname=local_path+figures+"02-4-tsne_parameter_selection.pdf")
Edited by Hendrik Schultheis