Chemical Structure Extract 分子结构图识别
文章目录
化学结构图片识别和解析

OCSR 视觉化学结构识别概念
- OCSR (optical chemical structure recognition) : 视觉化学结构识别
开源工具
OSRA
optical structure recognition application
| 项目 | 说明 |
|---|---|
| 维护状态 | 在维护,2021.09.05 |
| 维护地址 | sourceforge-OSRA |
| 证书 | GPLv2 |
| 使用语言 | C++ |
Imago
MolVec
| 项目 | 说明 |
|---|---|
| 维护状态 | 在维护,2022.04.26 |
| 维护地址 | github molvec |
| lGPLv2.1 | |
| 使用语言 | java |
decimer 2.0
| 项目 | 说明 |
|---|---|
| 维护状态 | 在维护,2022.12.02 |
| 维护地址 | github DECIMER-Image_Transformer |
| 开源证书 | MIT |
| 使用语言 | python |
| 技术 | 图片识别技术:深度学习, Efficient-Net V2 + Transformer |
性能对比
参考文献:
OSRA, Imago 和 MolVec 的比较。
准确度比较
由图易知,
- JPO 数据集 MolVec 精度更高
- CLEF 2012 数据集 OSRA 精度更高
- 其他数据集 USPTO 和 UOB 数据集 两者精度相差不大

识别速度比较
MolVec 完全占优势。
注:但这是有偏见的,测试者对 molvec 使用的是批量处理,osra 是命令行一次一个调用的,如果使用 C++ 编写程序使 osra 支持批量处理,两者哪个速度更快,还需要进一步测试

测试数据集
USPTO 数据集和 JPO 数据集
- 参考: uspto 和 jpo 数据集
CLEF 2012 数据集
MolRecUOB 数据集
https://raw.githubusercontent.com/ljmartin/molrec/master/0_data/all_chemicals
- 这是大型一个 csv 文件,包含 chembl 数据库 id 和 smiles 对
- 参考链接:https://github.com/ljmartin/molrec/tree/master/0_data
注意:
- 这里不包含结构图图片文件,需要自行从类似 https://www.ebi.ac.uk/chembl/ 的网站上自行获取
- 原始的 MolRecUOB 数据集找不到了,这是 molrec 代码库中的数据
OSRA 使用说明
安装方法
最新版本安装
linux 系统源码安装
代码指定版本下载
osra 最新版本: 2.1.3
gocr 的 osra 订制 patch 版: gocr-0.50pre-patched
ocrad 限定版本: 0.23
- http://mirrors.syringanetworks.net/gnu/ocrad/ocrad-0.23.tar.lz
解压缩命令:
1 2lzip -d ./ocrad-0.23.tar.lz tar -xvf ./ocrad-0.23.tar
其他依赖安装
1sudo pacman -S graphicsmagick poppler openbabel potrace tclap注意: 这里使用的测试系统使 arch linux, 如果使 ubuntu 或其他系统,请查找 poppler 等安装包的对应版本,比如:在 ubuntu 上使用 poppler-dev
gocr 编译安装
1./configure; make libs; sudo make installocrad 编译安装
1 2 3 4 5# 如果需要编译生成 libosra ./configure CXXFLAGS=-fPIC LDFLAGS=-fPIC; make; sudo make install # 否则 ./configure; make; sudo make installosra 编译安装
1 2 3 4 5 6 7 8# 生成 libosra, 验证失败 ./configure --enable-lib; make ; sudo make install # 生成 libosra, 验证失败 ./configure --enable-java; make all ; sudo make install # 只有命令行工具 osra, 验证成功 ./configure; make; sudo make install
通过 pyosra 安装
使用 conda 安装
| |
注意:实际安装版本使 osra 2.1.0 (2017.0.16 发布)
通过 bioconda 安装
| |
注意:
- 最新版本也是 osra 2.1.0, 参见:Package Recipe 'osra' — Bioconda documentation
- 测试安装成功,但是无法使用
通过 docker 安装
使用 bioconda 构建的 image
| |
使用方法
单个图片识别
- 直接识别
| |
注: 识别的结果默认是 SMILES 格式
设定导出格式
1osra ./benzene.png -w output.sdf -f sdf格式类型:
- smi: smiles
- sdf: sdf 文件格式
- can: 不知道什么意思,但是导出结果实际上还是 smiles
decimer 介绍
基于深度学习算法模型开发的化学结构图解析软件,使用了技术:Efficient-Net V2 + Transformer。
资料
安装
- 推荐使用 conda 环境
安装命令
1 2 3 4 5 6 7git clone https://github.com/Kohulan/DECIMER-Image_Transformer.git decimer && cd decimer/ && pip install -e . # 或者 pip install decimer # 或者 pip install git+https://github.com/Kohulan/DECIMER-Image_Transformer.git
使用
| |
文章作者
上次更新 2023-01-14