A comprehensive Python toolkit for analyzing molecular complexes using FairChem and GemNet models. Optimizes absorbent and analyte structures, forms complexes, and predicts molecular properties.
- π¬ ML-Powered Optimization - State-of-the-art FairChem models for precise molecular geometry optimization
- π Intelligent Complex Formation - Automated absorbent-analyte binding with configurable geometries
- π Comprehensive Property Prediction - Calculate electronic, energetic, and spectroscopic properties
- π₯οΈ Beautiful GUI - Modern React-based web interface
- π§ Linux Desktop App - Installable DEB package for Ubuntu/Debian
β¬οΈ Download DEB Package (Latest Release)
# Install
sudo dpkg -i molecular-analyzer-deb.deb
# Run
molecular-analyzer# Clone the repository
git clone https://github.com/Safi-ullah-majid/Molecular-Complex-Analysis.git
cd Molecular-Complex-Analysis
# Install Python dependencies
pip install -r requirements.txt
# Install frontend dependencies
cd frontend
npm install
cd ..Option 1: Web Interface
# Start backend (serves both API and frontend)
python3 api.py
# Open browser at http://localhost:8000Option 2: Linux Desktop App
# Install the DEB package
sudo dpkg -i molecular-analyzer-deb.deb
# Run from applications menu or terminal
molecular-analyzerOption 3: Simple Launcher
./launch.sh
Upload your absorbent and analyte .gjf files with drag-and-drop support
View comprehensive molecular properties including HOMO-LUMO gap, binding energy, and more
Configure optimization parameters, DFT methods, and computational settings
|
|
|
Molecular-Complex-Analysis/
βββ api.py # FastAPI backend
βββ analyzer.py # Core analysis code
βββ requirements.txt # Python dependencies
βββ launch.sh # Simple launcher
βββ icon.png # App icon
βββ frontend/ # React frontend
β βββ src/
β β βββ App.jsx
β β βββ index.js
β β βββ index.css
β βββ package.json
βββ docs/ # Documentation & screenshots
βββ uploads/ # Uploaded files (gitignored)
βββ results/ # Analysis results (gitignored)
βββ README.md
# Build frontend
cd frontend
npm run build
cd ..
# Run the app
python3 api.pySee BUILD.md for detailed instructions on creating the Linux desktop app.
from analyzer import MolecularComplexAnalyzer
# Initialize analyzer
analyzer = MolecularComplexAnalyzer()
# Analyze complex
structure, properties = analyzer.analyze_complex(
absorbent_path="absorbent.gjf",
analyte_path="analyte.gjf",
output_prefix="complex_analysis"
)
# Access results
print(f"Binding Energy: {properties['binding_energy']:.2f} kcal/mol")
print(f"HOMO-LUMO Gap: {properties['homo_lumo_gap']:.2f} eV")
print(f"Dipole Moment: {properties['dipole_moment']:.2f} D")Contributions are welcome! Here's how you can help:
- π Report bugs via Issues
- π‘ Suggest features and enhancements
- π Submit pull requests for bug fixes and new features
- π Improve documentation
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with powerful open-source tools:
- FairChem - ML models for molecular property prediction
- GemNet - Geometric message passing neural networks
- ASE - Atomic Simulation Environment
- React - Frontend framework
- FastAPI - Backend API framework
Safi Ullah Majid
- GitHub: @Safi-ullah-majid
- Project: Molecular-Complex-Analysis
β Star this repository if you find it helpful!