From 8715ddd590c3e579b332ce4a20b00e6b6a4676c0 Mon Sep 17 00:00:00 2001 From: xiaoliz0 Date: Tue, 13 Jan 2026 13:12:19 +0100 Subject: [PATCH 1/2] Verify the content of patient gender before import into files. --- Script/PRONTO.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Script/PRONTO.py b/Script/PRONTO.py index 4f6d128..5b40143 100755 --- a/Script/PRONTO.py +++ b/Script/PRONTO.py @@ -1049,6 +1049,10 @@ def update_clinical_master_file(InPreD_clinical_data_file,sample_id,if_generate_ global runID if_exist = False new_content = "" + if(ipd_gender != "" and ipd_gender != "X"): + gender = ipd_gender[0] + else: + gender = "" if(encoding_sys != ""): fr = open(InPreD_clinical_data_file, 'r', encoding=encoding_sys) else: @@ -1060,7 +1064,7 @@ def update_clinical_master_file(InPreD_clinical_data_file,sample_id,if_generate_ for ln in fr: if(ln.split('\t')[0] == sample_id): if_exist = True - line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, ipd_gender[0], ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, pathology_comment, sample_info_comment + '\n']) + line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, pathology_comment, sample_info_comment + '\n']) new_line = ln.replace(ln,line) new_content = new_content + new_line else: @@ -1071,7 +1075,7 @@ def update_clinical_master_file(InPreD_clinical_data_file,sample_id,if_generate_ else: fa = open(InPreD_clinical_data_file, 'a') if(if_exist == False): - line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, ipd_gender[0], ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, pathology_comment, sample_info_comment + '\n']) + line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, pathology_comment, sample_info_comment + '\n']) if(encoding_sys != ""): fa = open(InPreD_clinical_data_file, 'a', encoding=encoding_sys) else: @@ -1094,6 +1098,10 @@ def update_clinical_tsoppi_file(InPreD_clinical_tsoppi_data_file,sample_id,if_ge RNA_DNA_tumor_normal = "" global ipd_diagnosis_year global runID + if(ipd_gender != "" and ipd_gender != "X"): + gender = ipd_gender[0] + else: + gender = "" try: sample_type = sample_type.replace("\n", "") except: @@ -1109,14 +1117,14 @@ def update_clinical_tsoppi_file(InPreD_clinical_tsoppi_data_file,sample_id,if_ge for ln in fr: if(ln.split('\t')[0] == sample_id): if_exist = True - line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, ipd_gender[0], ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, sample_material, sample_type, tumor_type, str(TMB_DRUP), TMB_TSO500, MSI_TSO500, pipline, pathology_comment, sample_info_comment + '\n']) + line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, sample_material, sample_type, tumor_type, str(TMB_DRUP), TMB_TSO500, MSI_TSO500, pipline, pathology_comment, sample_info_comment + '\n']) new_line = ln.replace(ln,line) new_content = new_content + new_line else: new_content = new_content + ln fr.close() if(if_exist == False): - line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, ipd_gender[0], ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, sample_material, sample_type, tumor_type, str(TMB_DRUP), TMB_TSO500, MSI_TSO500, pipline, pathology_comment, sample_info_comment + '\n']) + line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, sample_material, sample_type, tumor_type, str(TMB_DRUP), TMB_TSO500, MSI_TSO500, pipline, pathology_comment, sample_info_comment + '\n']) with open(InPreD_clinical_tsoppi_data_file, 'a') as fa: fa.write(line) fa.close() From 66cef77d26b4709cdf991680dce3514b559a9b32 Mon Sep 17 00:00:00 2001 From: xiaoliz0 Date: Tue, 13 Jan 2026 13:32:01 +0100 Subject: [PATCH 2/2] Codes optimization. --- Script/PRONTO.py | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/Script/PRONTO.py b/Script/PRONTO.py index 5b40143..b6c0651 100755 --- a/Script/PRONTO.py +++ b/Script/PRONTO.py @@ -333,7 +333,9 @@ def get_patient_info_from_MTF_2023(ipd_material_file,ipd_no,DNA_sampleID,RNA_sam except: ipd_birth_year = "-" if(sheet_material.cell_value(r,c) == columns['gender'] and ipd_gender == ""): - ipd_gender = str(sheet_material.cell_value(r+2,c)) + gender = str(sheet_material.cell_value(r+2,c)) + if(gender != "" and gender != "X"): + ipd_gender = gender[0] if(sheet_material.cell_value(r,c) == columns['age']): ipd_age = str(sheet_material.cell_value(r+2,c)) if(sheet_material.cell_value(r,c) == columns['consent'] and ipd_consent == ""): @@ -465,7 +467,9 @@ def get_patient_info_from_MTF_new(ipd_material_file,ipd_no,DNA_sampleID,RNA_samp except: ipd_birth_year = "-" if(sheet_material.cell_value(r,c) == columns['gender'] and ipd_gender == ""): - ipd_gender = str(sheet_material.cell_value(r+2,c)) + gender = str(sheet_material.cell_value(r+2,c)) + if(gender != "" and gender != "X"): + ipd_gender = gender[0] if(sheet_material.cell_value(r,c) == columns['age']): ipd_age = str(sheet_material.cell_value(r+2,c)) if(sheet_material.cell_value(r,c) == columns['Histopathological_diagnosis'] and sheet_material.cell_value(r+1,c) != ""): @@ -563,10 +567,6 @@ def get_RNA_material_id(InPreD_clinical_data_file,RNA_sampleID,encoding_sys): def update_ppt_template_data(inpred_node,ipd_no,ipd_gender,ipd_age,ipd_diagnosis_year,DNA_material_id,RNA_material_id,ipd_consent,requisition_hospital,pathology_comment,ipd_clinical_diagnosis,tumor_type,sample_type,sample_material,sample_info_comment,pipline,tumor_content,ppt_template,output_ppt_file): - if(ipd_gender != "" and ipd_gender != "X"): - gender = ipd_gender[0] - else: - gender = "" if(ipd_age != "" and ipd_age != "-" and ipd_age != "XX" and ipd_age != "<1"): age = str(int(float(ipd_age))) else: @@ -673,7 +673,7 @@ def update_ppt_template_data(inpred_node,ipd_no,ipd_gender,ipd_age,ipd_diagnosis tf11.paragraphs[0].text = pathology_comment + "\n\n" + sample_info_comment.replace("|","\n") tf11.paragraphs[0].font.size = Pt(10) tf11.paragraphs[0].alignment = PP_ALIGN.LEFT - gender_age = gender + '/' + age + 'y' + gender_age = ipd_gender + '/' + age + 'y' if(RNA_material_id != ""): ipd_material_id_index = "DNA:" + DNA_material_id + "\nRNA:" + RNA_material_id else: @@ -1049,10 +1049,6 @@ def update_clinical_master_file(InPreD_clinical_data_file,sample_id,if_generate_ global runID if_exist = False new_content = "" - if(ipd_gender != "" and ipd_gender != "X"): - gender = ipd_gender[0] - else: - gender = "" if(encoding_sys != ""): fr = open(InPreD_clinical_data_file, 'r', encoding=encoding_sys) else: @@ -1064,7 +1060,7 @@ def update_clinical_master_file(InPreD_clinical_data_file,sample_id,if_generate_ for ln in fr: if(ln.split('\t')[0] == sample_id): if_exist = True - line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, pathology_comment, sample_info_comment + '\n']) + line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, ipd_gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, pathology_comment, sample_info_comment + '\n']) new_line = ln.replace(ln,line) new_content = new_content + new_line else: @@ -1075,7 +1071,7 @@ def update_clinical_master_file(InPreD_clinical_data_file,sample_id,if_generate_ else: fa = open(InPreD_clinical_data_file, 'a') if(if_exist == False): - line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, pathology_comment, sample_info_comment + '\n']) + line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, ipd_gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, pathology_comment, sample_info_comment + '\n']) if(encoding_sys != ""): fa = open(InPreD_clinical_data_file, 'a', encoding=encoding_sys) else: @@ -1098,10 +1094,6 @@ def update_clinical_tsoppi_file(InPreD_clinical_tsoppi_data_file,sample_id,if_ge RNA_DNA_tumor_normal = "" global ipd_diagnosis_year global runID - if(ipd_gender != "" and ipd_gender != "X"): - gender = ipd_gender[0] - else: - gender = "" try: sample_type = sample_type.replace("\n", "") except: @@ -1117,14 +1109,14 @@ def update_clinical_tsoppi_file(InPreD_clinical_tsoppi_data_file,sample_id,if_ge for ln in fr: if(ln.split('\t')[0] == sample_id): if_exist = True - line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, sample_material, sample_type, tumor_type, str(TMB_DRUP), TMB_TSO500, MSI_TSO500, pipline, pathology_comment, sample_info_comment + '\n']) + line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, ipd_gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, sample_material, sample_type, tumor_type, str(TMB_DRUP), TMB_TSO500, MSI_TSO500, pipline, pathology_comment, sample_info_comment + '\n']) new_line = ln.replace(ln,line) new_content = new_content + new_line else: new_content = new_content + ln fr.close() if(if_exist == False): - line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, sample_material, sample_type, tumor_type, str(TMB_DRUP), TMB_TSO500, MSI_TSO500, pipline, pathology_comment, sample_info_comment + '\n']) + line = '\t'.join([sample_id, runID, if_generate_report, ipd_birth_year, ipd_diagnosis_year, clinical_diagnosis, ipd_gender, ipd_consent, material_id, ipd_collection_year, requisition_hospital, extraction_hospital, str(tumor_content_nr), batch_nr, sample_material, sample_type, tumor_type, str(TMB_DRUP), TMB_TSO500, MSI_TSO500, pipline, pathology_comment, sample_info_comment + '\n']) with open(InPreD_clinical_tsoppi_data_file, 'a') as fa: fa.write(line) fa.close()