Download scripts/smi2csv.py from OneScience-Group/UniKP: direct link, hf CLI and curl.
- Browser
- Download file 1.49 kB
-
https://huggingface.co/OneScience-Group/UniKP/resolve/main/scripts/smi2csv.py
- Command line
-
hf download hf://OneScience-Group/UniKP/scripts/smi2csv.py
-
curl -L -o smi2csv.py https://huggingface.co/OneScience-Group/UniKP/resolve/main/scripts/smi2csv.py
1.49 kB
| import argparse | |
| import numpy as np | |
| import pandas as pd | |
| def main(): | |
| parser = argparse.ArgumentParser(description='Convert smi file to csv file') | |
| parser.add_argument('--in_path', '-i', type=str, default='data/GDB/GDB08.smi', help='input file') | |
| parser.add_argument('--out_path_1', '-o1', type=str, default='data/gdb08_bert_train.csv', help='output file (train)') | |
| parser.add_argument('--out_path_2', '-o2', type=str, default='data/gdb08_bert_test.csv', help='output file (test)') | |
| parser.add_argument('--max', '-m', type=int, default=2e6, help='Maximum number of molecules') | |
| args = parser.parse_args() | |
| print('Input file: {}'.format(args.in_path)) | |
| print('Start preprocessing') | |
| smiles = [] | |
| with open(args.in_path) as f: | |
| lines = f.readlines() | |
| for l in lines: | |
| smiles.append(l.replace('\n', '')) | |
| del lines | |
| smiles = np.array(smiles) | |
| N = len(smiles) | |
| print('The dataset contains {} molecules'.format(N)) | |
| rands = np.random.choice(N, min(N,args.max), replace=False) | |
| smiles_train = smiles[rands[:N//2]] | |
| df_train = pd.DataFrame(data=smiles_train, columns=['canonical_smiles']) | |
| df_train.to_csv(args.out_path_1, index=False) | |
| del smiles_train, df_train | |
| smiles_test = smiles[rands[N//2:]] | |
| df_test = pd.DataFrame(data=smiles_test, columns=['canonical_smiles']) | |
| df_test.to_csv(args.out_path_2, index=False) | |
| print('Each set contains {} molecules'.format(N//2)) | |
| if __name__=='__main__': | |
| main() |