File size: 5,346 Bytes
fd601de
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import csv
from dataprocesser.dataset_anika import (
    all_list_single_modality_from_anika_dataset_include_duplicate, 
    extract_patientID_from_Anika_dataset, 
    all_list_from_anika_dataset_include_duplicate)
from dataprocesser.dataset_synthrad import list_img_pID_from_synthrad_folder
from dataprocesser.dataset_anish import list_img_seg_ad_pIDs_from_anish_csv
from dataprocesser.dataset_dominik import all_list_from_dominik_dataset
from dataprocesser.step1_init_data_list import appart_img_and_seg, appart_merged_seg
from dataprocesser.step1_init_data_list import extract_patient_id

def create_csv_combine_lists_synthrad_anika_mr(synthrad_dir, anika_dir_mr, output_mr_csv_file, ifwrtiecsv=True):
    #synthrad_seg_list, synthrad_pIDs = list_img_pID_from_synthrad_folder(synthrad_dir, ["mr_seg"], None)
    seg_name_pattern = "mr_merged_seg" #r"^mr_merged_seg_\d{1}[A-Z]{2}\d{3}$"
    synthrad_seg_list, synthrad_pIDs = list_img_pID_from_synthrad_folder(synthrad_dir, [seg_name_pattern], None)
    synthrad_mr_list, _ = list_img_pID_from_synthrad_folder(synthrad_dir, ["mr"], None)
    synthrad_Aorta_diss = [0] * len(synthrad_seg_list)
    datalist_synthrad = [[id,Aorta_diss,seg,image] for id,Aorta_diss,seg,image in zip(synthrad_pIDs, synthrad_Aorta_diss, synthrad_seg_list, synthrad_mr_list)]

    mr_list = all_list_single_modality_from_anika_dataset_include_duplicate(anika_dir_mr)
    mr_files, mr_seg_files = appart_img_and_seg(mr_list)
    mr_seg_files = appart_merged_seg(mr_seg_files)
    mr_pIDs = extract_patientID_from_Anika_dataset(mr_files)

    mr_Aorta_diss = [0] * len(mr_files)
    datalist_mr = [[id,Aorta_diss,seg,image] for id,Aorta_diss,seg,image in zip(mr_pIDs, mr_Aorta_diss, mr_seg_files, mr_files)]

    print('length dataset 1: ', len(datalist_synthrad))
    print('length dataset 2: ', len(datalist_mr))
    dataset_list=datalist_synthrad+datalist_mr
    if ifwrtiecsv:
        create_csv_info_file(dataset_list, output_mr_csv_file) 
    return dataset_list

def create_csv_info_file(dataset_list, output_mr_csv_file):
    with open(output_mr_csv_file, 'w', newline='') as f:
        csvwriter = csv.writer(f)
        csvwriter.writerow(['id', 'Aorta_diss', 'seg', 'img'])
        csvwriter.writerows(dataset_list) 
    
def create_csv_synthrad_mr(synthrad_dir, output_csv_file):
    synthrad_seg_list, synthrad_pIDs = list_img_pID_from_synthrad_folder(synthrad_dir, ["mr_merged_seg"], None)
    synthrad_ct_list, _ = list_img_pID_from_synthrad_folder(synthrad_dir, ["mr"], None)
    synthrad_Aorta_diss = [0] * len(synthrad_seg_list)
    datalist_synthrad = [[id,Aorta_diss,seg,image] for id,Aorta_diss,seg,image in zip(synthrad_pIDs, synthrad_Aorta_diss, synthrad_seg_list, synthrad_ct_list)]

    print('length dataset 2: ', len(datalist_synthrad))
    dataset_list=datalist_synthrad
    create_csv_info_file(dataset_list, output_csv_file)

def create_csv_combine_lists_synthrad_anish(synthrad_dir, anish_csv, output_csv_file):
    synthrad_seg_list, synthrad_pIDs = list_img_pID_from_synthrad_folder(synthrad_dir, ["ct_seg"], None)
    synthrad_ct_list, _ = list_img_pID_from_synthrad_folder(synthrad_dir, ["ct"], None)
    synthrad_Aorta_diss = [0] * len(synthrad_seg_list)
    
    #anish_pIDs, anish_Aorta_diss, anish_seg_list, anish_ct_list = list_img_seg_ad_pIDs_from_new_simplified_csv(anish_csv)
    anish_pIDs, anish_Aorta_diss, anish_seg_list, anish_ct_list = list_img_seg_ad_pIDs_from_anish_csv(anish_csv)
    datalist_synthrad = [[id,Aorta_diss,seg,image] for id,Aorta_diss,seg,image in zip(synthrad_pIDs, synthrad_Aorta_diss, synthrad_seg_list, synthrad_ct_list)]
    datalist_anish = [[id,Aorta_diss,seg,image] for id,Aorta_diss,seg,image in zip(anish_pIDs, anish_Aorta_diss, anish_seg_list, anish_ct_list)]

    print('length dataset 1: ', len(synthrad_ct_list))
    print('length dataset 2: ', len(datalist_synthrad))
    dataset_list=datalist_synthrad+datalist_anish
    create_csv_info_file(dataset_list, output_csv_file)

def create_csv_Anika(ct_dir, mri_dir, output_ct_csv_file, output_mr_csv_file):
    ct_list, mr_list = all_list_from_anika_dataset_include_duplicate(ct_dir, mri_dir)
    ct_files, ct_seg_files = appart_img_and_seg(ct_list)
    ct_pIDs = extract_patientID_from_Anika_dataset(ct_files)
    ct_Aorta_diss = [0] * len(ct_list)
    datalist_ct = [[id,Aorta_diss,seg,image] for id,Aorta_diss,seg,image in zip(ct_pIDs, ct_Aorta_diss, ct_seg_files, ct_files)]
    create_csv_info_file(datalist_ct, output_ct_csv_file)

    mr_files, mr_seg_files = appart_img_and_seg(mr_list)
    mr_pIDs = extract_patientID_from_Anika_dataset(mr_files)
    mr_Aorta_diss = [0] * len(mr_files)
    datalist_mr = [[id,Aorta_diss,seg,image] for id,Aorta_diss,seg,image in zip(mr_pIDs, mr_Aorta_diss, mr_seg_files, mr_files)]
    create_csv_info_file(datalist_mr, output_mr_csv_file)

def create_csv_Dominik(mri_dir, output_mr_csv_file):
    mr_list = all_list_from_dominik_dataset(mri_dir)
    mr_files, mr_seg_files = appart_img_and_seg(mr_list)
    mr_seg_files = appart_merged_seg(mr_seg_files)
    mr_pIDs = [extract_patient_id(mr_file) for mr_file in mr_files]
    mr_Aorta_diss = [0] * len(mr_files)
    datalist_mr = [[id,Aorta_diss,seg,image] for id,Aorta_diss,seg,image in zip(mr_pIDs, mr_Aorta_diss, mr_seg_files, mr_files)]
    create_csv_info_file(datalist_mr, output_mr_csv_file)