https://github.com/michelml/chempp
[paused development] Large scale concurrent chemical search using RDKit cartridge, Oat++ and native Postgres & C++ features.
https://github.com/michelml/chempp
cheminformatics cpp oatpp postgresql rdkit
Last synced: 11 months ago
JSON representation
[paused development] Large scale concurrent chemical search using RDKit cartridge, Oat++ and native Postgres & C++ features.
- Host: GitHub
- URL: https://github.com/michelml/chempp
- Owner: MichelML
- License: apache-2.0
- Created: 2021-05-16T19:20:19.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-08-22T15:29:33.000Z (over 3 years ago)
- Last Synced: 2025-02-26T05:41:30.940Z (about 1 year ago)
- Topics: cheminformatics, cpp, oatpp, postgresql, rdkit
- Language: C++
- Homepage:
- Size: 99.6 KB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
**Paused Development**
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![Apache License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
[Large scale] concurrent chemical search engine using RDKit cartridge, Oat++ and native Postgres & C++ features.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
## About The Project
**chempp** [kem-pee-pee], is a large scale concurrent chemical search engine using RDKit cartridge, Oat++ and native Postgres & C++ features.
### Built With
* [Oat++](https://oatpp.io/)
* [PostgreSQL RDKit cartridge](https://rdkit.org/docs/Cartridge.html)
* [PostgreSQL](https://www.postgresql.org/)
* Special mention to Arthur Farias for his very well crafted [url encoding/decoding C++ gist](https://gist.github.com/arthurafarias/56fec2cd49a32f374c02d1df2b6c350f)
## Installation
### Prerequisites
- Knowledge of what a [SMILES](https://en.wikipedia.org/wiki/Simplified_molecular-input_line-entry_system) is in chemistry
- Knowledge of what a [SMARTS](https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification) is in chemistry
- [Git](https://git-scm.com/)
- [Docker and Docker-Compose](https://www.docker.com/)
### Install steps
Clone the project
```bash
git clone https://github.com/MichelML/chempp.git && \
cd chempp
```
Then, start the db and fill it with molecules. You have two options:
#### Option 1 - Small Database of 1000 molecules
```bash
docker-compose up -d db && \
docker-compose exec db bash -c "SMALLDB=1 /utility/populate_db.sh"
```
#### Option 2 - Large database of ~3M compounds
```bash
docker-compose up -d db && \
docker-compose exec db bash -c "/utility/populate_db.sh"
```
> **Warning:** This command will take a while because it inserts ~3M rows in the db and [creates indexes to perform efficient searches](https://rdkit.org/docs/Cartridge.html), a rough estimate being between 15 minutes and an hour.
Lastly, start the chempp service:
```bash
docker-compose up service
```
Once these commands are ran, you are ready to test the endpoints at http://localhost:8000/swagger/ui .
## Usage
See usage through Swagger demo here https://drive.google.com/file/d/1FKh3-N4KWvVEz7NPFmMDALWu-BzYbaHP/view?usp=sharing .
## Roadmap
See the [open issues](https://github.com/michelml/chempp/issues) for a list of proposed features (and known issues).
## Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
Make sure to format your code properly with `make format`.
## License
Distributed under the Apache-2.0 License. See `LICENSE` for more information.
## Contact
Michel ML - [@michelml](https://github.com/MichelML) - michmoreau.l@gmail.com
Project Link: [https://github.com/michelml/chempp](https://github.com/michelml/chempp)
## Acknowledgements
Thank you to all contributors of libraries and tools used in this project.
[contributors-shield]: https://img.shields.io/github/contributors/michelml/chempp.svg?style=for-the-badge
[contributors-url]: https://github.com/michelml/chempp/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/michelml/chempp.svg?style=for-the-badge
[forks-url]: https://github.com/michelml/chempp/network/members
[stars-shield]: https://img.shields.io/github/stars/michelml/chempp.svg?style=for-the-badge
[stars-url]: https://github.com/michelml/chempp/stargazers
[issues-shield]: https://img.shields.io/github/issues/michelml/chempp.svg?style=for-the-badge
[issues-url]: https://github.com/michelml/chempp/issues
[license-shield]: https://img.shields.io/github/license/michelml/chempp.svg?style=for-the-badge
[license-url]: https://github.com/michelml/chempp/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://www.linkedin.com/in/michelmoreau1/
[product-screenshot]: chempp.png