[ PROMPT_NODE_26448 ]
io_module
[ SKILL_DOCUMENTATION ]
# Datamol I/O 模块参考
`datamol.io` 模块为多种格式的分子数据提供了全面的文件处理功能。
## 读取分子文件
### `dm.read_sdf(filename, sanitize=True, remove_hs=True, as_df=True, mol_column='mol', ...)`
读取结构数据文件 (SDF) 格式。
- **参数**:
- `filename`: SDF 文件路径(通过 fsspec 支持本地和远程路径)
- `sanitize`: 对分子应用清洗
- `remove_hs`: 移除显式氢原子
- `as_df`: 返回 DataFrame (True) 或分子列表 (False)
- `mol_column`: DataFrame 中的分子列名称
- `n_jobs`: 启用并行处理
- **返回**: DataFrame 或分子列表
- **示例**: `df = dm.read_sdf("compounds.sdf")`
### `dm.read_smi(filename, smiles_column='smiles', mol_column='mol', as_df=True, ...)`
读取 SMILES 文件(默认以空格分隔)。
- **常见格式**: SMILES 后跟分子 ID/名称
- **示例**: `df = dm.read_smi("molecules.smi")`
### `dm.read_csv(filename, smiles_column='smiles', mol_column=None, ...)`
读取 CSV 文件,支持可选的自动 SMILES 到分子转换。
- **参数**:
- `smiles_column`: 包含 SMILES 字符串的列
- `mol_column`: 如果指定,则从 SMILES 列创建分子对象
- **示例**: `df = dm.read_csv("data.csv", smiles_column="SMILES", mol_column="mol")`
### `dm.read_excel(filename, sheet_name=0, smiles_column='smiles', mol_column=None, ...)`
读取带有分子处理功能的 Excel 文件。
- **参数**:
- `sheet_name`: 要读取的工作表(索引或名称)
- 其他参数与 `read_csv` 类似
- **示例**: `df = dm.read_excel("compounds.xlsx", sheet_name="Sheet1")`
### `dm.read_molblock(molblock, sanitize=True, remove_hs=True)`
解析 MOL 块字符串(分子结构的文本表示)。
### `dm.read_mol2file(filename, sanitize=True, remove_hs=True, cleanupSubstructures=True)`
读取 Mol2 格式文件。
### `dm.read_pdbfile(filename, sanitize=True, remove_hs=True, proximityBonding=True)`
读取蛋白质数据库 (PDB) 格式文件。
### `dm.read_pdbblock(pdbblock, sanitize=True, remove_hs=True, proximityBonding=True)`
解析 PDB 块字符串。
### `dm.open_df(filename, ...)`
通用 DataFrame 读取器 - 自动检测格式。
- **支持格式**: CSV, Excel, Parquet, JSON, SDF
- **示例**: `df = dm.open_df("data.csv")` 或 `df = dm.open_df("molecules.sdf")`
## 写入分子文件
### `dm.to_sdf(mols, filename, mol_column=None, ...)`
写入分子