π Live Dashboard: https://iqc-dashboard.streamlit.app/
A high-performance, open-source computational chemistry dashboard built with Streamlit. The IQC Dashboard provides fast, interactive visualization and analysis of large datasets produced by IQC (Interactive Quantum Chemistry). It includes 3D molecular viewers, rich analytics, and efficient querying of large Parquet datasets using DuckDB.
The IQC Dashboard is purpose-built for exploring results from the IQC framework, which supports quantum chemistry workflows such as:
- Single-point energy calculations
- Geometry optimizations
- Vibrational frequency analysis
- Thermochemistry calculations
This dashboard makes IQC outputs easy to browse, filter, visualize, and inspectβwhether you're validating high-throughput calculations or exploring results molecule-by-molecule.
- Works directly with Parquet datasets generated by IQC
- Recognizes and visualizes all major IQC task types (single, opt, vib, thermo)
- Powered by DuckDB for ultra-fast SQL queries on Parquet files
- No need to load entire datasets into memory, even for multi-gigabyte files
- View initial vs optimized structures side-by-side
- Built with stmol and py3Dmol
Plotly-based interactive charts, including:
- Initial vs optimized energy comparisons
- Optimization time distributions
- Convergence analysis
- Vibrational frequency spectra
Filter datasets by:
- Calculator
- Task type
- Chemical formula
- Convergence status
- Number of atoms
Deep dive into one molecule at a time with:
- Structure overlays
- Energy breakdown
- Vibrational and thermochemical properties
It's recommended to use a virtual environment to isolate dependencies. Choose one of the following methods:
Option A: Using venv (built into Python 3.9+)
python -m venv iqc-dashboard-env
source iqc-dashboard-env/bin/activate # On macOS/Linux
# or
iqc-dashboard-env\Scripts\activate # On WindowsOption B: Using conda (recommended for scientific computing)
conda create -n iqc-dashboard-env python=3.9
conda activate iqc-dashboard-envOption C: Using uv (fastest)
uv venv iqc-dashboard-env
source iqc-dashboard-env/bin/activate # On macOS/Linux
# or
iqc-dashboard-env\Scripts\activate # On WindowsOnce your virtual environment is activated, install the dashboard:
Using pip:
pip install iqc-dashboardUsing uv (recommended for faster installation):
uv pip install iqc-dashboardFrom source:
git clone https://github.com/Autonomous-Scientific-Agents/IQC_Dashboard.git
cd IQC_Dashboard
pip install -e .
# or with uv:
uv pip install -e .After installation, simply run:
streamlit run streamlit_app.pyOr if you installed the package, you can use:
iqc-dashboardNote: If you installed from source, make sure you're in the repository directory when running streamlit run streamlit_app.py, or use the iqc-dashboard command after installation.
After installation, you can run the dashboard in several ways:
Option 1: Using Streamlit directly
streamlit run streamlit_app.pyOption 2: Using the Python module
python -m streamlit run streamlit_app.pyOption 3: Using the command-line entry point (after installation)
iqc-dashboardOption 4: Running from the package directly
streamlit run -m iqc_dashboard.appThe dashboard expects Parquet files generated by IQC with the following columns (at minimum):
unique_name: Unique identifier for each moleculeinitial_xyz: Initial structure in XYZ formatopt_xyz: Optimized structure in XYZ formatopt_energy_eV: Optimized energy in eVinitial_energy_eV: Initial energy in eVformula: Chemical formulaopt_converged: Boolean indicating convergencecalculator: Calculator name (e.g., from ASE)task: Task type (single, opt, vib, thermo)number_of_atoms: Number of atomsvibrational_frequencies_cm^-1: List of vibrational frequencies (from vib calculations)G_eV,H_eV,S_eV/K: Thermochemical properties (from thermo calculations)
See the full schema in the application documentation. The schema matches the output format from IQC calculations.
- A GitHub account
- A Streamlit Cloud account (free at streamlit.io/cloud)
- Your repository pushed to GitHub
-
Push your code to GitHub (if not already done):
git add . git commit -m "Prepare for Streamlit Cloud deployment" git push origin main
-
Connect to Streamlit Cloud:
- Go to share.streamlit.io
- Sign in with your GitHub account
- Click "New app"
-
Configure your app:
- Repository: Select
Autonomous-Scientific-Agents/IQC_Dashboard - Branch:
main - Main file path:
streamlit_app.py(oriqc_dashboard/app.pyif preferred) - Python version: 3.9 or higher (Streamlit Cloud supports 3.9-3.12)
- Repository: Select
-
Advanced Settings (optional):
- Streamlit Cloud will automatically detect and use
pyproject.tomlfor dependencies - Alternatively, you can specify
requirements.txtin the advanced settings - No secrets or environment variables are required for basic functionality
- The app uses
streamlit_app.pyas the entry point (which imports from the package)
- Streamlit Cloud will automatically detect and use
-
Deploy:
- Click "Deploy!"
- Streamlit Cloud will build and deploy your app
- The first deployment may take a few minutes
The repository includes a .streamlit/config.toml file with recommended settings. Streamlit Cloud will use these automatically.
If you encounter issues:
- Dependency conflicts: Ensure all dependencies in
pyproject.tomlare compatible - Import errors: Check that all required packages are listed in dependencies
- Memory issues: The app uses DuckDB to handle large files efficiently, but very large datasets may require optimization
- 3D visualization not working: Ensure
stmolandpy3Dmolare properly installed (they should be automatically installed from dependencies)
No environment variables are required for basic operation. If you need to configure additional settings, you can add them in Streamlit Cloud's "Advanced settings" section.
git clone https://github.com/Autonomous-Scientific-Agents/IQC_Dashboard.git
cd IQC_Dashboard
# Create and activate virtual environment (choose one method)
python -m venv venv
source venv/bin/activate # On macOS/Linux
# or
venv\Scripts\activate # On Windows
# Install in development mode with dev dependencies
pip install -e ".[dev]"Or with uv:
git clone https://github.com/Autonomous-Scientific-Agents/IQC_Dashboard.git
cd IQC_Dashboard
uv venv
source .venv/bin/activate # On macOS/Linux
uv pip install -e ".[dev]"Run all tests:
pytestRun tests with coverage:
pytest --cov=iqc_dashboard --cov-report=htmlRun specific test file:
pytest tests/test_data_manager.pyRun tests in verbose mode:
pytest -vblack iqc_dashboard/
ruff check iqc_dashboard/iqc_dashboard/
βββ iqc_dashboard/
β βββ __init__.py
β βββ app.py # Main Streamlit application
β βββ cli.py # Command-line interface
βββ tests/ # Unit tests
β βββ __init__.py
β βββ conftest.py # Pytest fixtures
β βββ test_data_manager.py
β βββ test_render_molecule.py
β βββ test_cli.py
βββ .github/
β βββ workflows/
β βββ ci.yml # GitHub Actions CI workflow
βββ .streamlit/
β βββ config.toml # Streamlit configuration
βββ pyproject.toml # Package configuration (PEP 621)
βββ pytest.ini # Pytest configuration
βββ requirements.txt # Legacy requirements (for compatibility)
βββ README.md # This file
- streamlit: Web framework
- duckdb: Fast analytical database for Parquet files
- pandas: Data manipulation
- pyarrow: Parquet file support
- stmol: Streamlit wrapper for 3D molecular visualization
- py3Dmol: 3D molecular visualization library
- plotly: Interactive plotting
- numpy: Numerical computing
MIT License
Contributions are welcome! Please feel free to submit a Pull Request.
For issues, questions, or contributions, please open an issue on GitHub.
- IQC (Interactive Quantum Chemistry): The computational chemistry framework that generates the data visualized by this dashboard
Built with:
Designed to visualize output from IQC (Interactive Quantum Chemistry).