Skip to main content

DECIMER Segmentation - Extraction of chemical structure depictions from scientific literature

Project description

DECIMER-Image-Segmentation

License Maintenance GitHub issues GitHub contributors DOI

Chemistry looks back at many decades of publications on chemical compounds, their structures and properties, in scientific articles. Liberating this knowledge (semi-)automatically and making it available to the world in open-access databases is a current challenge. Apart from mining textual information, Optical Chemical Structure Recognition (OCSR), the translation of an image of a chemical structure into a machine-readable representation, is part of this workflow. As the OCSR process requires an image containing a chemical structure, there is a need for a publicly available tool that automatically recognizes and segments chemical structure depictions from scientific publications. This is especially important for older documents which are only available as scanned pages. Here, we present DECIMER (Deep lEarning for Chemical IMagE Recognition) Segmentation, the first open-source, deep learning-based tool for automated recognition and segmentation of chemical structures from the scientific literature.

The workflow is divided into two main stages. During the detection step, a deep learning model recognizes chemical structure depictions and creates masks which define their positions on the input page. Subsequently, potentially incomplete masks are expanded in a post-processing workflow. The performance of DECIMER Segmentation has been manually evaluated on three sets of publications from different publishers. The approach operates on bitmap images of journal pages to be applicable also to older articles before the introduction of vector images in PDFs.

By making the source code and the trained model publicly available, we hope to contribute to the development of comprehensive chemical data extraction workflows. In order to facilitate access to DECIMER Segmentation, we also developed a web application. The web application, available at https://decimer.ai, lets the user upload a pdf file and retrieve the segmented structure depictions.

GitHub Logo

Usage

  • To use DECIMER Segmentation, clone the repository to your local disk. Mask-RCNN runs on a GPU-enabled PC or simply on CPU, so please do make sure you have all the necessary drivers installed if you are using the GPU.
We recommend to use DECIMER-Segmentation inside a Conda environment to facilitate the installation of the dependencies.
  • Conda can be downloaded as part of the Anaconda or the Miniconda plattforms (Python 3.7). We recommend to install miniconda3. Using Linux you can get it with:
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh

How to install DECIMER-Segmentation

$ git clone https://github.com/Kohulan/DECIMER-Image-Segmentation
$ cd DECIMER-Image-Segmentation
$ conda create --name DECIMER_IMGSEG python=3.7
$ conda activate DECIMER_IMGSEG
$ conda install pip
$ python -m pip install -U pip #Upgrade pip
$ pip install .


How to use DECIMER-Segmentation

  • The repository contains a script that can be used for the segmentation of chemical structures from an image of a scanned page or from a pdf document:
$ python3 segment_structures_in_document.py file_name (the file can be an image of a scanned page or a pdf document) 
  • Segmented images are saved in the output folder (which has the name of the pdf file).

  • Alternatively, you can use integrate DECIMER Segmentation in your Python code:

from decimer_segmentation import DecimerSegmentation
import cv2

structure_extractor = DecimerSegmentation()

# Segment structures in scanned page image (np.array)
page = cv2.imread(scanned_page_file_path)
segments = structure_extractor.segment_chemical_structures(page, expand=True)

# Segment structures from file (pdf or image)
# Windows users may need to specify the location of their poppler installation with the poppler_path argument if they want to process pdf files
segments = structure_extractor.segment_chemical_structures_from_file(path, expand=True, poppler_path=None)

Notes for Windows users:

  • Execute DECIMER_Segmentation.py in the Anaconda Powershell Prompt

  • If you run into an error with the pdf conversion on Windows, you need to download poppler and extract the file.

  • The method segment_chemical_structures_from_file() takes a 'poppler_path' argument where the user can specify the path of their poppler installation ('PATH/TO/POPPLER/bin').

Authors

decimer.ai

Citation

Rajan, K., Brinkhaus, H.O., Sorokina, M. et al. DECIMER-Segmentation: Automated extraction of chemical structure depictions from scientific literature. J Cheminform 13, 20 (2021). https://doi.org/10.1186/s13321-021-00496-1

Project page

GitHub Logo

More information about our research group

GitHub Logo

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

decimer_segmentation-1.1.tar.gz (67.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

decimer_segmentation-1.1-py3-none-any.whl (70.3 kB view details)

Uploaded Python 3

File details

Details for the file decimer_segmentation-1.1.tar.gz.

File metadata

  • Download URL: decimer_segmentation-1.1.tar.gz
  • Upload date:
  • Size: 67.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for decimer_segmentation-1.1.tar.gz
Algorithm Hash digest
SHA256 d49cc0ff4bae33a3bb89206e27c7d2fe66f84032d52cb6579232a601dffafb28
MD5 6f901f718b2e12ca0e7878dcdec0c393
BLAKE2b-256 6404b5aebe3527c74f816b9b9b35860854bdb0d14adc9c0352f59b6d302f0947

See more details on using hashes here.

File details

Details for the file decimer_segmentation-1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for decimer_segmentation-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ae967cebe13c061ffa61012e97d96b4ef1361beaa1ea4e1f5367a32ad704ade9
MD5 7f767a3e1e6fd2f24d1dda6cadc6e9b2
BLAKE2b-256 85d4fd3da83fd72a7b5c66d27c2c62ea8bc5a0e17ef3f0fa019a158cba670988

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page