Include RDKit for molecular manipulation.
Project description
GEOM – Geometry File Management
GEOM is a command-line tool for creating, modifying, and analyzing XYZ geometry files. It provides geometry transformations, nanoparticle generation, and graphene structure creation for computational research.
Publications
GEOM has been used in the following research paper(s):
- Giovannini, T.; Grobas Illobre, P.; Lafiosca, P.; Nicoli, L.; Bonatti, L.; Corni, S.; Cappelli, C. plasmonX: an Open-Source Code for Nanoplasmonics. Comput. Phys. Commun. 2026, 110035. https://doi.org/10.1016/j.cpc.2026.110035
Features
- RDKit tools: molecular visualization, file conversion, force field optimization, and conformers generation.
- AI Assistant for nanoparticle and graphene creation
- Geometry Transformations: Translation, rotation, merging, and specular (mirror) transformations.
- Nanoparticle Generation: Sphere, rod, core-shell, tip, pyramid, cone, icosahedron, and more.
- Graphene Structures: Ribbons, disks, rings, and triangles.
- Advanced Options: Alloying, dimer formation, and bowtie configurations.
- Minimum Distance Calculation between XYZ geometries.
- Geometrical Center Computation.
Installation
GEOM requires Python 3.8+ and the following dependencies:
gmsh==4.11.1ase==3.22.1numpy==1.24.3pytest==8.3.4launchpadlib==2.1.0pyautogen==0.2.18flaml[automl]==2.1.1httpx==0.27.2
Setting Up the Virtual Environment
GEOM uses Conda to set up a virtual environment for your project. To install it and set up your environment, run the following:
./install.sh
This script will:
- Check if Miniconda or Anaconda is installed. If not, it will prompt you to install Miniconda.
- Set up a virtual environment named geom_env with the necessary dependencies.
- Configure environment variables and aliases for running GEOM.
Activate the Environment
After installation, load the GEOM environment by running:
geom_load
This will set the necessary aliases and environment variables to run the tool properly.
Once the environment is set up, run the following command to see the available options:
geom -h
This will display the help menu with all the available commands and their descriptions.
Example commands:
- RDKit conformers generation
geom -rdkit -i tyrosine.mol -confs
- RDKit file conversion
geom -rdkit -i tyrosine.mol -o tyrosine.pdb
- Rotate geometry 90 degrees around the Y-axis:
geom -r1 90 geom.xyz origin_CM_yes +y
- Generate a nanoparticle sphere:
geom -create -sphere Ag 30
- Generate a graphene ribbon:
geom -create -graphene rib 50 20
Starting the AI Assistant
GEOM now includes an AI-powered assistant that understands natural language, translates it into valid GEOM CLI commands, and executes them automatically.
This assistant is built using Microsoft's AutoGen framework, which enables a multi-agent system to interface with OpenAI’s language models and run commands dynamically.
1. Export your OpenAI API key
The assistant requires access to OpenAI's LLMs. Make sure you have your API key set:
export OPENAI_API_KEY=your-api-key-here
You can obtain an API key from https://platform.openai.com/account/api-keys
2. Start the assistant
To launch the chat-based assistant, load the GEOM environment (i.e., with geom_load) and run:
ai_geom
You’ll be greeted with a ChatGPT-like chat prompt where you can type your requests for geometry creation:
The assistant will automatically create and execute the corresponding GEOM command for you.
Running Tests
The ./install.sh script automatically runs tests to ensure everything is set up correctly.
To manually run the tests again:
./geom/tests/run_all_tests.sh
License
GEOM is licensed under the GNU General Public License v3.0.
Funding
This project has been supported by the FARE 2020 program — "Framework per l’attrazione e il rafforzamento delle eccellenze per la ricerca in Italia."
Contact
For issues or contributions:
- Email: pgrobasillobre@gmail.com
- Github issues: https://github.com/pgrobasillobre/geom/issues
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file geom_x-2.0.1.tar.gz.
File metadata
- Download URL: geom_x-2.0.1.tar.gz
- Upload date:
- Size: 80.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7412765a15e0916e5a44434d5c942ff23bcd485d0081decc75a6f64dcb4b51e3
|
|
| MD5 |
df5a3cb8370184a6f58a4173574b541a
|
|
| BLAKE2b-256 |
01564a506057e1dfbfbdf510908b1c929d0f76627fb9f68d4d20cf5eac5e2ca2
|
Provenance
The following attestation bundles were made for geom_x-2.0.1.tar.gz:
Publisher:
publish-pypi.yml on pgrobasillobre/geom
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geom_x-2.0.1.tar.gz -
Subject digest:
7412765a15e0916e5a44434d5c942ff23bcd485d0081decc75a6f64dcb4b51e3 - Sigstore transparency entry: 924552415
- Sigstore integration time:
-
Permalink:
pgrobasillobre/geom@156f566ae7e99e97c592b1b6678452541d9199b6 -
Branch / Tag:
refs/tags/v2.0.1 - Owner: https://github.com/pgrobasillobre
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@156f566ae7e99e97c592b1b6678452541d9199b6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file geom_x-2.0.1-py3-none-any.whl.
File metadata
- Download URL: geom_x-2.0.1-py3-none-any.whl
- Upload date:
- Size: 83.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4409f1c9f2882477179d0c10b30d7876c80e8533fe00a01b3061b6ec04ce333
|
|
| MD5 |
ee8cb3bbb3ed7034c5ac6c3c57132b20
|
|
| BLAKE2b-256 |
5d47211575ec1d833b38c4a1d90516f72c6f884af8936d7b4dd11ab9d22472e9
|
Provenance
The following attestation bundles were made for geom_x-2.0.1-py3-none-any.whl:
Publisher:
publish-pypi.yml on pgrobasillobre/geom
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
geom_x-2.0.1-py3-none-any.whl -
Subject digest:
a4409f1c9f2882477179d0c10b30d7876c80e8533fe00a01b3061b6ec04ce333 - Sigstore transparency entry: 924552423
- Sigstore integration time:
-
Permalink:
pgrobasillobre/geom@156f566ae7e99e97c592b1b6678452541d9199b6 -
Branch / Tag:
refs/tags/v2.0.1 - Owner: https://github.com/pgrobasillobre
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@156f566ae7e99e97c592b1b6678452541d9199b6 -
Trigger Event:
push
-
Statement type: