把sdf文件转变为csv文件,文件内容包含3列,第一列:文件名,第二列:SMILES,第三列:r_exp_dg
时间: 2024-10-23 07:06:12 浏览: 48
为vs2010源代码减肥
将SDF文件转换成CSV文件,通常需要使用化学数据处理库,如Python的rdkit或pandas。以下是简单步骤:
1. **安装必要的库**:如果你还没有安装rdkit,可以使用pip安装:
```
pip install rdkit pandas
```
2. **读取SDF文件**:使用rdkit的`Chem.SDMolSupplier()`函数读取SDF文件并获取分子信息。
```python
from rdkit import Chem
suppl = Chem.SDMolSupplier('input.sdf')
```
3. **提取所需信息**:对于每一行(即每一个分子),从SMILES字符串和相关的属性(如r_exp_dg)中提取你需要的数据。
```python
smiles_list = []
r_exp_dg_list = []
for mol in suppl:
if mol is not None:
smiles = Chem.MolToSmiles(mol)
# 假设r_exp_dg是一个分子属性,这里只是一个示例,实际可能需要查询或计算
r_exp_dg = mol.GetProp('_Name') # 如果r_exp_dg是名字属性
smiles_list.append(smiles)
r_exp_dg_list.append(r_exp_dg)
```
4. **创建CSV DataFrame**:使用pandas将列表转换为DataFrame,并指定列名。
```python
import pandas as pd
data = {'File Name': [f'{i}.smiles' for i in range(len(smiles_list))],
'SMILES': smiles_list,
'r_exp_dg': r_exp_dg_list}
df = pd.DataFrame(data)
```
5. **保存为CSV**:最后,使用pandas的`to_csv()`函数将DataFrame保存为CSV文件。
```python
df.to_csv('output.csv', index=False)
```
阅读全文