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)