CLAM完整流程。patches-feature-split-train-eval
refer:
(CNS复现)CLAM——Chapter_00_clam复现-CSDN博客
- 切patch
python create_patches_fp.py --source /data/qgking/zkx/WSI_datasets/PAIP/img --save_dir /data/qgking/zkx/CLAM/Datasets/paip2020 --patch_size 256 --seg --patch --stitch
每张大小不一样,发现patch数目也不同的
生成csv文件,将自动生成的process_list_autogen.csv处理成Step_2.csv
- 提取特征
CUDA_VISIBLE_DEVICES=0 python extract_features_fp.py --data_h5_dir /data/qgking/zkx/CLAM/Datasets/paip2020 --data_slide_dir /data/qgking/zkx/WSI_datasets/PAIP/img --csv_path /data/qgking/zkx/CLAM/Datasets/paip2020/Step_2.csv --feat_dir /data/qgking/zkx/CLAM/FEATURES_DIRECTORY/paip_msi_vs_mss_resnet_features --batch_size 512 --slide_ext .svs
默认是resnet提取
使用之前存下来的patch的坐标信息,在整个wsi图片上进行裁减,最后得到若干张固定大小和固定通道的patch
生成Step_3.csv文件,这边会用到下载的原始csv文件
- spilt
修改添加自己的任务
parser.add_argument('--task', type=str, choices=['task_1_tumor_vs_normal', 'task_2_tumor_subtyping','task_3_msi_vs_mss']) # add your task here
运行后文件生成在splits文件夹,8:1:1 进行10折划分
python create_splits_seq.py --task task_3_msi_vs_mss --seed 1 --label_frac 0.75 --k 10
- train
安装topk
git clone https://github.com/oval-group/smooth-topk.git
cd smooth-topk
python setup.py install
- eval
修改代码,添加task
CUDA_VISIBLE_DEVICES=0 python eval.py \--drop_out 0.25 \--k 10 \--models_exp_code /data/qgking/zkx/CLAM/results/task_3_msi_vs_mss_CLAM_50_s1 \--save_exp_code task_3_msi_vs_mss_CLAM_50_s1_cv \--task task_3_msi_vs_mss \--model_type clam_sb \--results_dir results \--data_root_dir /data/qgking/zkx/CLAM/FEATURES_DIRECTORY
结果,因为张数太少吧,结果不是很好
- 可视化
还没弄
总结:
构建两个model,第一个model用于进一步的提取特提取,第二个model用于分类。
现在第一个不动。第二个分类网络替换成其他的然后运行train不就可以了么
PAIP自己的二分类方法
chhan95/PAIP2020: MSI-High Classification in Colorectal Cancer