first add
This commit is contained in:
190
notebooks/README_analyze_ring16.md
Normal file
190
notebooks/README_analyze_ring16.md
Normal file
@@ -0,0 +1,190 @@
|
||||
# 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
|
||||
# 1. 计算分子性质
|
||||
props = calculate_properties(smiles)
|
||||
|
||||
# 2. 批量断裂
|
||||
fragmenter = MacrolactoneFragmenter(ring_size=16)
|
||||
batch_results = fragmenter.process_csv(csv_file)
|
||||
|
||||
# 3. 统计分析
|
||||
df_fragments = fragmenter.batch_to_dataframe(batch_results)
|
||||
position_stats = df_fragments.groupby('cleavage_position').agg(...)
|
||||
|
||||
# 4. 绘图
|
||||
sns.histplot(values, kde=True, ax=ax, bins=30)
|
||||
```
|
||||
|
||||
## 关键洞察
|
||||
|
||||
### 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模型
|
||||
|
||||
## 参考
|
||||
|
||||
- `filter_molecules.ipynb` - 分子过滤和断裂逻辑
|
||||
- `test_align_two_molecules.ipynb` - 绘图逻辑参考
|
||||
- `src/macrolactone_fragmenter.py` - 封装的断裂器类
|
||||
- `src/ring_visualization.py` - 可视化工具
|
||||
|
||||
## 问题反馈
|
||||
|
||||
如果遇到问题:
|
||||
1. 检查是否在 `pixi shell` 环境中
|
||||
2. 确认所有依赖包已安装
|
||||
3. 查看输出目录是否有写入权限
|
||||
4. 检查CSV文件路径是否正确
|
||||
|
||||
|
||||
Reference in New Issue
Block a user