热力图和PCA降维图(热力图和PCA降维图)

  1. 数据介绍部分:这次作图是基于医院胃的WSI图切成的patch,我们保存的格式是h5的格式,这部门数组会用来生成热力图;PCA图调用的是测试生成的slide_id.npy文件(由tok-50的归一化数组构成)。
    [slide数据是这样,每张wsi的topk-50(postive)和topk-50(negtive),分别对应着数组数据和patch_id.
  2. 接下来给出部分heatmap和PCA代码。
import numpy as np
import matplotlib.pyplot as plt
import torch
import os
import h5py
from PIL import Image
from sklearn.decomposition import PCA
def heatmap(index)
	f=h5py.file(r"xxxxx.h5",'r')
	keys  = []
	for key in f.keys():
		keys.append(key)
	print('keys',keys)
	for i in index:
		arr = f['imgs'].value[i]
		img = Image.froarray(arr,'RGB')
		save_path = os.path.join(str(i)+'_pos.png')
		img.save(save_path)
def PCA_pic():
	path = r"xxx.npy"
	data = np.load(path,allow_pickle = True)
	pca_data = data[63]#这边第63个元素是clam_model里data_csv对应的h5文件的np数组数据
	postive_data = pca_data['postive_data']
	negative_data = pca_data['negative_data']
	postive_idx = pca_data['postive_idx']
	negative_idx = pca_data['negative_idx']
	pca_data = torch.cat((postive_data,negative_data),0)
	make_heatmap(negative_idx.tolist())
	pca = PCA(n_components = 2)
	reduced_X = pca.fix.transform(pca_data)
	plt.scatter([x[0] for x in reduced_X[0:50]],[x[1] for x in reduced_X[0:50]],c = 'r')	
	plt.scatter([x[0 for x in reduced_X[50:100]],[x[1] for x in reduced_X[50:100],c='b')
	plt.show()	

我可能会跌倒,但我总是会再爬起来,谢谢诶

感谢一直帮助的小伙伴!

本文地址:https://blog.csdn.net/qq_43504327/article/details/110480558