如何将数据集smiles结构转化为mordred分子描述符 并以mordred分子描述符下的分子描述符的名字给每列命名
时间: 2024-11-10 14:25:09 浏览: 16
将SMILES(Simplified Molecular Input Line Entry System)结构转换成Mordred分子描述符通常涉及两个步骤:首先解析SMILES字符串,然后计算特征向量。Mordred是一个Python库,用于高效地生成化学分子的各种描述符。下面是简化的步骤:
1. **安装Mordred**:
如果你还没有安装,需要先通过pip安装:
```
pip install mordred
```
2. **导入所需的库**:
```python
import mordred
from rdkit.Chem import AllChem
```
这里需要用到`rdkit`库,它是一个用于化学信息处理的工具包。
3. **解析SMILES到mol对象**:
```python
def smiles_to_mol(smile):
mol = AllChem.MolFromSmiles(smile)
if mol is None:
print(f"Invalid SMILES: {smile}")
return None
return mol
molecules = ['your_smiles_string_1', 'your_smiles_string_2', ...]
mol_list = [smiles_to_mol(smile) for smile in molecules]
```
4. **计算Mordred描述符**:
```python
md = mordred.descriptors.compute(mol_list)
```
5. **获取描述符名称**:
Mordred库中的描述符名称可以在文档中找到:https://mordred.readthedocs.io/en/latest/api.html#module-mordred.descriptors
```python
descriptor_names = [desc.name for desc in md.columns]
```
6. **创建DataFrame并命名列**:
将结果转换为Pandas DataFrame,每一列对应一个描述符名称:
```python
df = pd.DataFrame(md.data, columns=descriptor_names)
```
现在,`df`就是包含Mordred描述符的DataFrame,每一列都有对应的描述符名称。
阅读全文