A comprehensive Python toolkit for analyzing molecular complexes using FairChem and GemNet models — optimize absorbent and analyte structures, form complexes, and predict molecular properties, all from one place.
Download · Quick Start · Screenshots · Properties · Contributing
- Features
- Download
- Quick Start
- Screenshots
- Property Calculations
- Tech Stack
- Development
- Usage Example
- Contributing
- License
- Acknowledgments
- Contact
| 🔬 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, responsive React-based web interface |
| 🐧 Linux Desktop App | Installable .deb package for Ubuntu/Debian |
# 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 | Command |
|---|---|
| 🌐 Web Interface |
python3 api.py
# Open browser at http://localhost:8000 |
| 🐧 Linux Desktop App |
sudo dpkg -i molecular-analyzer-deb.deb
molecular-analyzer |
| ⚡ 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!