ComProScanner
A comprehensive Python package for extracting composition-property data from scientific articles for building databases
Overview
ComProScanner is a multi-agent framework designed to extract composition-property relationships from scientific articles in materials science. It automates the entire workflow from metadata collection to data extraction, evaluation, and visualization.
Key Features:
- 🏗️ Data extraction from texts, tables and figures.
- 📚 Multi-publisher support (Elsevier, Springer, Wiley, IOP, local PDFs)
- 🤖 Agentic extraction using CrewAI framework
- 🔍 RAG-powered context retrieval for cost-effective automation with accuracy
- 📊 Comprehensive evaluation and visualization tools
- 🎯 Customizable extraction workflows
- 🌐 Knowledge graph generation
Installation
Install from PyPI:
pip install comproscanner
Or install from source:
git clone https://github.com/slimeslab/ComProScanner.git
cd comproscanner
pip install -e .
Quick Start
Here's a complete example extracting piezoelectric coefficient (d33) data:
from comproscanner import ComProScanner
# Initialize scanner
scanner = ComProScanner(main_property_keyword="piezoelectric")
# Collect metadata
scanner.collect_metadata(
base_queries=["piezoelectric", "piezoelectricity"],
extra_queries=["ceramics", "applications"]
)
# Process articles
property_keywords = {
"exact_keywords": ["d33"],
"substring_keywords": [" d 33 "]
}
scanner.process_articles(
property_keywords=property_keywords,
source_list=["elsevier", "springer"]
)
# Extract composition-property data
scanner.extract_composition_property_data(
main_extraction_keyword="d33"
)
Workflow
The ComProScanner workflow consists of four main stages:
- Metadata Retrieval - Find relevant scientific articles
- Article Collection - Extract full-text from various publishers
- Information Extraction - Use LLM agents to extract structured data
- Post Processing & Dataset Creation - Evaluate, clean, and visualize results
Documentation
📖 Full documentation is available at slimeslab.github.io/ComProScanner
Core Capabilities
Supported Publishers
- Elsevier (via TDM API)
- Springer Nature (via TDM API)
- Wiley (via TDM API)
- IOP Publishing (via SFTP bulk access)
- Local PDFs (any publication)
Data Extraction
- Composition-property relationships
- Material families
- Synthesis methods and precursors
- Characterization techniques
- Synthesis steps
Evaluation Methods
- Semantic Evaluation - Using semantic similarity measures
- Agentic Evaluation - LLM-powered contextual analysis
Visualization
- Data Visualization
- Evaluation Visualization
Requirements
- Python 3.12 or 3.13
- TDM API keys for desired publishers (Elsevier, Springer, Wiley)
- LLM API keys (OpenAI, Anthropic, Google, etc.)
- Optional: Neo4j for knowledge graph visualization
Citation
If you use ComProScanner in your research, please cite the following papers:
@article{roy2026comproscanner,
title={ComProScanner: a multi-agent based framework for composition-property structured data extraction from scientific literature},
author={Roy, Aritra and Grisan, Enrico and Buckeridge, John and Gattinoni, Chiara},
journal={Digital Discovery},
volume={5},
number={4},
pages={1794--1808},
year={2026},
publisher={Royal Society of Chemistry},
doi ="10.1039/D5DD00521C",
url ="https://doi.org/10.1039/D5DD00521C"
}
@misc{roy2026comproscanner_vlm,
title={Beyond Text and Tables: Vision-Language Model Integration in ComProScanner for Extracting Materials Data from Scientific Figures with High Accuracy},
author={Aritra Roy and Enrico Grisan and Chiara Gattinoni and John Buckeridge},
year={2026},
eprint={2606.00065},
archivePrefix={arXiv},
primaryClass={cs.IR},
doi={10.48550/arXiv.2606.00065},
url={https://arxiv.org/abs/2606.00065},
}
Changelog
See the CHANGELOG for details on what has changed in each version.
Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright © 2025-2026 SLIMES Lab
Contact
Author: Aritra Roy
- 🌐 Website: aritraroy.live
- 📧 Email: contact@aritraroy.live
- 🐙 GitHub: @aritraroy24
- 𝕏 Twitter: @aritraroy24
Project Links:
- 📦 PyPI: pypi.org/project/comproscanner
- 📖 Documentation: slimeslab.github.io/ComProScanner
- 🐛 Issues: github.com/slimeslab/ComProScanner/issues
Made with ❤️ by SLIMES Lab
Metadata
Release files for comproscanner 2026.8.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| comproscanner-2026.8.11.tar.gz | 215.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| comproscanner-2026.8.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 452.1 kB
Release files / comproscanner-2026.8.11.tar.gz
| Download URL | comproscanner-2026.8.11.tar.gz |
|---|---|
| Size | 215.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8d3f3f065fc257a612484e9bb85b2cb8ad9787d3604591b5340fd119824b7e19
|
|
BLAKE2b-256 checksum How to use checksums |
f1d2d408292f44cc48bc00ec521be2c23e7a2fdb4d843fbe67dcf12f3dacaa6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / comproscanner-2026.8.11-py3-none-any.whl
| Download URL | comproscanner-2026.8.11-py3-none-any.whl |
|---|---|
| Size | 236.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e58e64716b81dddd03cae3ce5c30bdb8f09dd9cc288b326b73fbe606655467b5
|
|
BLAKE2b-256 checksum How to use checksums |
b77e646856d1ffc0f1c00c7ca64a517f1d8d083fbe884954dda710d60b00f342
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|