Implement the standard/non-standard/not-macrolactone classification layer and integrate it into analyzer, fragmenter, and CLI outputs. Port the remaining legacy package capabilities into new visualization and workflow modules, restore batch/statistics/SDF scripts on top of the flat CSV workflow, and update active docs to the new package API.
186 lines
5.4 KiB
Markdown
186 lines
5.4 KiB
Markdown
# 16元环大环内酯分子分析说明
|
||
|
||
## 文件说明
|
||
|
||
- **notebook文件**: `analyze_ring16_molecules.ipynb`
|
||
- **输入数据**: `../output/ring16_match_smarts.csv` (307个分子)
|
||
- **输出目录**: `../output/`
|
||
|
||
## 使用方法
|
||
|
||
### 1. 激活环境
|
||
|
||
```bash
|
||
cd /home/zly/project/macro_split
|
||
pixi shell
|
||
```
|
||
|
||
### 2. 运行notebook
|
||
|
||
```bash
|
||
jupyter notebook notebooks/analyze_ring16_molecules.ipynb
|
||
```
|
||
|
||
或使用 JupyterLab:
|
||
|
||
```bash
|
||
jupyter lab notebooks/analyze_ring16_molecules.ipynb
|
||
```
|
||
|
||
### 3. 按顺序运行所有单元格
|
||
|
||
notebook会自动:
|
||
1. 计算所有分子的药物性质(分子量、LogP、QED、TPSA等)
|
||
2. 进行侧链断裂分析
|
||
3. 统计每个位置(3-16)的碎片分布
|
||
4. 生成分布图并保存到 `output/` 目录
|
||
|
||
## 生成的输出文件
|
||
|
||
### 图片文件
|
||
- `ring16_molecular_properties_distribution.png` - 分子性质分布图(4个子图)
|
||
- 分子量分布
|
||
- LogP分布
|
||
- QED分布
|
||
- TPSA分布
|
||
|
||
- `atom_count_distribution_ring16.png` - 每个位置的原子数分布(14个子图,位置3-16)
|
||
|
||
- `molecular_weight_distribution_ring16.png` - 每个位置的分子量分布(14个子图,位置3-16)
|
||
|
||
### 数据文件
|
||
- `ring16_fragments_analysis.csv` - 所有碎片的详细信息
|
||
- 列:fragment_id, parent_id, parent_smiles, cleavage_position, fragment_smiles, atom_count, molecular_weight
|
||
|
||
- `ring16_molecular_properties.csv` - 所有分子的性质数据
|
||
- 列:unique_id, mol_weight, logP, num_h_donors, num_h_acceptors, num_rotatable_bonds, tpsa, qed, num_atoms, num_heavy_atoms
|
||
|
||
## 分析内容
|
||
|
||
### 已完成
|
||
|
||
1. **分子基本性质计算** ✅
|
||
- 分子量、LogP、QED、TPSA
|
||
- 氢键供受体数、可旋转键数
|
||
- 原子数、重原子数
|
||
|
||
2. **侧链断裂分析** ✅
|
||
- 使用封装好的 `MacrolactoneFragmenter` 类
|
||
- 批量处理所有307个分子
|
||
- 统计每个位置的碎片类型和数量
|
||
|
||
3. **分布图绘制** ✅
|
||
- 参考 `test_align_two_molecules.ipynb` 的绘图逻辑
|
||
- 4x4子图布局,展示位置3-16的分布
|
||
- 使用 seaborn 和 matplotlib 绘图
|
||
|
||
### 延伸分析建议
|
||
|
||
notebook的最后一个单元格(Section 9)提供了详细的延伸分析建议,包括:
|
||
|
||
#### 优先级1(强烈推荐)⭐⭐⭐
|
||
- **LogP分析**:找出对亲脂性贡献最大的侧链位置
|
||
- **QED分析**:比较高/低QED分子的侧链差异
|
||
- **TPSA分析**:分析极性侧链的分布模式
|
||
|
||
#### 优先级2(重要)⭐⭐⭐
|
||
- **SAR分析**:如果有活性数据(max_pChEMBL),分析结构-活性关系
|
||
- **特权侧链**:找出高频出现在活性分子中的侧链
|
||
|
||
#### 优先级3(有价值)⭐⭐
|
||
- **碎片多样性分析**:统计每个位置的独特碎片类型
|
||
- **聚类分析**:基于碎片指纹进行分子聚类
|
||
- **极性/疏水性分析**:分析侧链的极性特征
|
||
|
||
#### 可选分析 ⭐
|
||
- **3D性质**:PMI、NPR等3D描述符
|
||
- **Lipinski规则**:检查类药性规则
|
||
- **立体化学**:手性中心分析
|
||
|
||
## 代码示例
|
||
|
||
notebook中包含了完整的代码示例,可以直接运行或修改。主要功能:
|
||
|
||
```python
|
||
from macro_lactone_toolkit import MacroLactoneAnalyzer
|
||
from macro_lactone_toolkit.workflows import fragment_csv, results_to_dataframe
|
||
|
||
analyzer = MacroLactoneAnalyzer()
|
||
classification = analyzer.classify_macrocycle(smiles, ring_size=16)
|
||
|
||
batch_results = fragment_csv(csv_file, ring_size=16)
|
||
df_fragments = results_to_dataframe(batch_results)
|
||
position_stats = df_fragments.groupby("cleavage_position").agg(...)
|
||
```
|
||
|
||
## 关键洞察
|
||
|
||
### LogP的价值
|
||
- 反映分子的亲脂性,对膜通透性和药物分布至关重要
|
||
- 大环内酯通常LogP较高
|
||
- 了解侧链对LogP的贡献有助于优化药物设计
|
||
|
||
### QED的意义
|
||
- QED综合评估"类药性"
|
||
- 大环内酯往往违反Lipinski规则(分子量>500),但仍可能是好药
|
||
- 比较高/低QED分子可以找出影响类药性的关键侧链
|
||
|
||
### TPSA的重要性
|
||
- TPSA与口服生物利用度密切相关(一般<140Ų为佳)
|
||
- 极性侧链对TPSA贡献显著
|
||
- 可以指导侧链修饰策略
|
||
|
||
## 注意事项
|
||
|
||
1. **环境要求**:
|
||
- 需要安装 `seaborn` 和 `matplotlib`
|
||
- 如果没有安装,notebook会提示:`pixi add seaborn matplotlib`
|
||
|
||
2. **处理时间**:
|
||
- 处理307个分子可能需要几分钟
|
||
- 绘制分布图也需要一些时间
|
||
|
||
3. **内存使用**:
|
||
- 批量处理和绘图会占用一定内存
|
||
- 如果遇到内存问题,可以减少 `max_rows` 参数
|
||
|
||
4. **图片分辨率**:
|
||
- 默认使用 300 DPI 保存图片
|
||
- 可以根据需要调整 `dpi` 参数
|
||
|
||
## 后续工作
|
||
|
||
根据分析结果,建议进行:
|
||
|
||
1. **LogP与侧链的定量关系**
|
||
- 计算去除各个侧链后的LogP变化
|
||
- 找出对LogP贡献最大的位置
|
||
|
||
2. **活性数据关联**(如果有)
|
||
- 分析高活性分子的侧链特征
|
||
- 找出"特权侧链"
|
||
|
||
3. **碎片库构建**
|
||
- 整理每个位置的常见碎片
|
||
- 用于指导新分子设计
|
||
|
||
4. **机器学习预测**
|
||
- 使用碎片特征预测分子性质
|
||
- 建立QSAR模型
|
||
|
||
## 参考
|
||
|
||
- `scripts/batch_process_ring16.py` - 16 元环 flat workflow 入口
|
||
- `scripts/analyze_fragments.py` - 位置统计和图表输出
|
||
- `src/macro_lactone_toolkit/fragmenter.py` - 标准大环内酯裂解器
|
||
- `src/macro_lactone_toolkit/visualization.py` - 编号和碎片可视化工具
|
||
|
||
## 问题反馈
|
||
|
||
如果遇到问题:
|
||
1. 检查是否在 `pixi shell` 环境中
|
||
2. 确认所有依赖包已安装
|
||
3. 查看输出目录是否有写入权限
|
||
4. 检查CSV文件路径是否正确
|
||
|