Fpath = filedialog.askdirectory() # 读取panel表信息 panel_file = Fpath + "/panel.xlsx" panel_tuple = Fcs.export_panel_tuple(panel_file) print(panel_tuple) for filename in [ filename for filename in os.listdir(Fpath) if os.path.splitext(filename)[1] == ".fcs" ]: file = Fpath + '/' + filename fcs = Fcs(file) pars = fcs.delete_channel(fcs.pars, 89, 115, 140, 115) # pars = fcs.marker_rename(fcs.pars, *panel_tuple) # stain_channel_index = fcs.get_stain_channels(pars) # # # 添加event_length, 191, 193, 194, 140 # add_channel = ["Event_length", "Ir191Di", "Ir193Di", "Pt194Di", "Ce140Di"] # add_index = [i + 1 for i in range(0, len(pars)) if pars[i].par_short_name in add_channel] # stain_channel_index.extend(add_index) # pars = [pars[i] for i in range(0, len(pars)) if i + 1 in stain_channel_index] # 根据当前的filename去查找新的name new_filename = re.sub("-", "", filename) # new_filename = re.sub("^.+?_", "gsH_", new_filename) new_file = Fpath + "/WriteFcs/" + new_filename fcs.write_to(new_file, pars)
if __name__ == '__main__': ################################################### #### 1.Read FCS file and convert to CSV #### ################################################### # Choose File Path Fpath = filedialog.askdirectory() os.makedirs(Fpath + "/WriteFcs/") csv_path = Fpath + '/WriteFcs/' for filename in [ filename for filename in os.listdir(Fpath) if os.path.splitext(filename)[1] == ".fcs" ]: file = Fpath + '/' + filename fcs = Fcs(file) pars = fcs.pars new_filename = re.sub("-", "", filename) new_filename = re.sub("^.+?_", "", new_filename) # new_filename = re.sub("^.+?_", "", new_filename) new_file = Fpath + "/WriteFcs/" + new_filename + '.csv' fcs.write_to(new_file, pars, to='csv') path = Fpath + "/WriteFcs" all_df = pd.DataFrame() for file in os.listdir(path): df = pd.read_csv(path + '/' + file) all_df = all_df.append(df) print("File %s has finished." % file) all_df.iloc[:, :-1].to_csv(path + '/' + path.split('/')[-2] + '.csv', index=False)
file = Fpath + '/' + filename fcs = Fcs(file) pars = fcs.marker_rename(fcs.pars, *panel_tuple) stain_channel_index = fcs.get_stain_channels(pars) # Add event_length, 191, 193, 194, 140 add_channel = ["Event_length", "Ir191Di", "Ir193Di", "Pt194Di", "Ce140Di"] add_index = [i + 1 for i in range(0, len(pars)) if pars[i].par_short_name in add_channel] stain_channel_index.extend(add_index) pars = [pars[i] for i in range(0, len(pars)) if i + 1 in stain_channel_index] # Rename new file new_filename = re.sub("-", "", filename) new_filename = re.sub("^.+?_", "", new_filename) # new_filename = re.sub("^.+?_", "", new_filename) new_file = Fpath + "/WriteFcs/" + new_filename fcs.write_to(new_file, pars, to="csv") print('All FCS files have been converted to CSV files.', '\n', '-'*100, '\n') ################################################### #### 2. Calculation #### ################################################### file_list = os.listdir(csv_path) label_frequency_all = pd.DataFrame() ratio_all = pd.DataFrame() real_all = pd.DataFrame() real_adjust_all = pd.DataFrame() confidence_all = pd.DataFrame() immune_age_all = pd.DataFrame() ratio34_all = pd.DataFrame() impair_all = pd.DataFrame()