#@import pandas as pd
#@from rdkit import Chem
#@from rdkit.Chem import AllChem
#@import os
# Input data
#@dir_path = "C:\\Users\\liyix\\OneDrive\\Desktop\\CYP3A7_inhibitor\\"
# List all files in the folder
#@files = os.listdir(dir_path)
#@files
# Filter CSV files
#@csv_files = [file for file in files if file.endswith('.csv')]
#@csv_files
# Input data
#@training_data = pd.read_csv(dir_path + '2023-05-24-3A7 inhibitor_str.csv')
#@training_data.columns.tolist()
#@type(training_data)
#@pd.set_option('display.max_columns', None)
#@pd.set_option('display.max_rows', None)
#@training_data.head()
#@training_data = training_data.iloc[1:5, 0:4]
#Sample.ID Active
#1 NCGC00013058-02 1
#2 NCGC00013082-04 1
# List of SMILES strings representing the compounds
#@smiles_list = training_data.iloc[:, 2]
#@smiles_list.head()
#@type(smiles_list) #<class 'pandas.core.series.Series'>
#@smiles_list[1] #'C/[N+](C)=C1\\C=C/C(C=C1)=C(/'
#@len(smiles_list) #4017
#smiles_list.iloc[4:8]
#4 Oc1ccc(cc1)C3(OS(=O)(=O)c2ccccc23)c4ccc(O)cc4
#5 Cl.Cl.Nc1cc(C)nc2ccc(cc12)NC(=O)Nc3ccc4nc(C)cc...
#6 OC(=O)C(=O)CCC(=O)O
#7 Cl.Cl.Oc1c(CN)c(cnc1C)C
# Create empty lists to store molecule structures and fingerprints
#@molecule_structures = []
#@fingerprints = []
#@molecule_smiles = []
#@molecule_name = []
# Convert each SMILES string to a molecule object and generate fingerprints
#@for i, smiles in enumerate(smiles_list):
#@ try:
#@ mol = Chem.MolFromSmiles(smiles)
#@fp = AllChem.GetMorganFingerprintAsBitVect(mol, 2, nBits=1024, useBondTypes=True, useChirality=False, useFeatures=False)
#@fp_bits = fp.ToBitString()
# Add molecule structure and fingerprint to the respective lists
#@molecule_structures.append(mol)
#@fingerprints.append(fp_bits)
#@molecule_smiles.append(smiles)
#@molecule_name.append(training_data.iloc[i, 0])
#@except Exception as e:
#@ continue
#@else:
#@ print("No error occurred")
#@print("End of the loop")
# Create a data frame from the lists
#@data = pd.DataFrame({'Structure': molecule_structures, 'Fingerprint': fingerprints, "Smiles" : molecule_smiles, "SampleID" : molecule_name})
#@len(data)
#@data.head()
# Print the data frame
# Split fingerprint string into separate columns
#@split_fingerprints = data['Fingerprint'].apply(lambda x: pd.Series(list(x)))
#@type(split_fingerprints)
# Rename columns to represent bit positions
#@split_fingerprints.columns = ['Bit_'+str(i+1) for i in range(split_fingerprints.shape[1])]
# Concatenate the original data frame with the split fingerprint columns
#@data_split = pd.concat([data, split_fingerprints], axis=1)
#@View(data_split)
# Print the updated data frame
#@print(data_split)
#save the results
#save the results
#@output_file = dir_path + "ECFP4_inhibitor_ecfp4.csv"
#@data_split.to_csv(output_file, index=False)
print("well done!")
## [1] "well done!"