excel中读取smiles
时间: 2023-08-14 10:16:30 浏览: 103
利用rdkit将smiles转化为原子坐标键数据,并用正则表达式将数据提取
如果你的Excel文件中的SMILES字符串都在同一个单元格中,那么你可以使用Python中的pandas库来读取Excel文件,并使用RDKit库将SMILES字符串转换为分子对象。以下是一个示例代码:
```python
import pandas as pd
from rdkit import Chem
# 读取Excel文件
df = pd.read_excel('your_excel_file.xlsx')
# 读取SMILES字符串
smiles_list = df['SMILES'].tolist()
# 将SMILES字符串转换为分子对象
mols = []
for smiles in smiles_list:
mol = Chem.MolFromSmiles(smiles)
mols.append(mol)
```
如果SMILES字符串分布在多个单元格中,你可以使用pandas库的read_excel函数中的参数来指定读取哪些单元格。例如,假设你的SMILES字符串在第一列和第二列中,你可以这样读取:
```python
df = pd.read_excel('your_excel_file.xlsx', usecols=[0, 1])
smiles_list = []
for index, row in df.iterrows():
smiles = row[0] + row[1] # 假设SMILES跨越了第一列和第二列
smiles_list.append(smiles)
mols = []
for smiles in smiles_list:
mol = Chem.MolFromSmiles(smiles)
mols.append(mol)
```
在这个例子中,我们使用了pandas库的iterrows函数来遍历每一行,并将两列中的SMILES字符串合并为一个字符串。然后,我们将这些SMILES字符串转换为分子对象。
阅读全文