quantui 0.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- quantui/__init__.py +311 -0
- quantui/analytics.py +609 -0
- quantui/app.py +5650 -0
- quantui/app_analysis.py +662 -0
- quantui/app_builders.py +2465 -0
- quantui/app_exports.py +194 -0
- quantui/app_formatters.py +493 -0
- quantui/app_history.py +624 -0
- quantui/app_runflow.py +1544 -0
- quantui/app_visualization.py +2620 -0
- quantui/ase_bridge.py +236 -0
- quantui/benchmarks.py +1543 -0
- quantui/c_stderr.py +124 -0
- quantui/cactus.py +88 -0
- quantui/calc_log.py +1116 -0
- quantui/calculator.py +204 -0
- quantui/cancellation.py +88 -0
- quantui/cli.py +288 -0
- quantui/comparison.py +306 -0
- quantui/config.py +725 -0
- quantui/data/js/3Dmol-min.js +2 -0
- quantui/data/js/3Dmol-min.js.LICENSE.txt +5 -0
- quantui/data/library/library.sqlite +0 -0
- quantui/data/manifests/bulk_qm9.json +1 -0
- quantui/data/manifests/curated.json +15482 -0
- quantui/data/manifests/presets.json +816 -0
- quantui/descriptor_cards.py +186 -0
- quantui/freq_calc.py +712 -0
- quantui/freq_ir_workers.py +229 -0
- quantui/gpu_offload.py +278 -0
- quantui/help_content.py +474 -0
- quantui/ir_plot.py +130 -0
- quantui/issue_tracker.py +170 -0
- quantui/live_log.py +387 -0
- quantui/log_utils.py +492 -0
- quantui/molecule.py +577 -0
- quantui/molecule_library.py +433 -0
- quantui/nmr_calc.py +437 -0
- quantui/optimizer.py +670 -0
- quantui/orbital_visualization.py +1102 -0
- quantui/pes_scan.py +420 -0
- quantui/preopt.py +355 -0
- quantui/progress.py +111 -0
- quantui/pubchem.py +1157 -0
- quantui/reorganization_energy.py +435 -0
- quantui/results_storage.py +902 -0
- quantui/security.py +14 -0
- quantui/session_calc.py +622 -0
- quantui/structure_providers.py +277 -0
- quantui/tddft_calc.py +307 -0
- quantui/user_settings.py +238 -0
- quantui/utils.py +287 -0
- quantui/vib_cache.py +247 -0
- quantui/visualization_py3dmol.py +593 -0
- quantui/viz_assets.py +101 -0
- quantui/viz_backend_router.py +243 -0
- quantui-0.5.1.dist-info/METADATA +533 -0
- quantui-0.5.1.dist-info/RECORD +62 -0
- quantui-0.5.1.dist-info/WHEEL +5 -0
- quantui-0.5.1.dist-info/entry_points.txt +2 -0
- quantui-0.5.1.dist-info/licenses/LICENSE +21 -0
- quantui-0.5.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: quantui
|
|
3
|
+
Version: 0.5.1
|
|
4
|
+
Summary: An open-source frontend for DFT and post-HF quantum chemistry with PySCF
|
|
5
|
+
Author-email: Jonathan Schultz <nccu-schultz-lab@users.noreply.github.com>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2026 The Schultz Lab, North Carolina Central University
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Project-URL: Homepage, https://github.com/The-Schultz-Lab/QuantUI
|
|
29
|
+
Project-URL: Source, https://github.com/The-Schultz-Lab/QuantUI
|
|
30
|
+
Project-URL: Documentation, https://the-schultz-lab.github.io/QuantUI/
|
|
31
|
+
Project-URL: Changelog, https://github.com/The-Schultz-Lab/QuantUI/blob/main/CHANGELOG.md
|
|
32
|
+
Project-URL: Issues, https://github.com/The-Schultz-Lab/QuantUI/issues
|
|
33
|
+
Keywords: quantum chemistry,DFT,PySCF,jupyter,voila,frontend,computational chemistry
|
|
34
|
+
Classifier: Development Status :: 3 - Alpha
|
|
35
|
+
Classifier: Intended Audience :: Science/Research
|
|
36
|
+
Classifier: Intended Audience :: Education
|
|
37
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
38
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
39
|
+
Classifier: Programming Language :: Python :: 3
|
|
40
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
41
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
42
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
43
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
44
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
45
|
+
Classifier: Operating System :: MacOS
|
|
46
|
+
Classifier: Environment :: Web Environment
|
|
47
|
+
Classifier: Framework :: Jupyter
|
|
48
|
+
Requires-Python: >=3.9
|
|
49
|
+
Description-Content-Type: text/markdown
|
|
50
|
+
License-File: LICENSE
|
|
51
|
+
Requires-Dist: jupyter<2,>=1.0.0
|
|
52
|
+
Requires-Dist: ipywidgets<9,>=8.0.0
|
|
53
|
+
Requires-Dist: notebook<8,>=7.0.0
|
|
54
|
+
Requires-Dist: numpy<3,>=1.24.0
|
|
55
|
+
Requires-Dist: requests<3,>=2.28.0
|
|
56
|
+
Requires-Dist: py3Dmol<3,>=2.0.0
|
|
57
|
+
Requires-Dist: matplotlib<4,>=3.7.0
|
|
58
|
+
Requires-Dist: plotly<7,>=5.0.0
|
|
59
|
+
Requires-Dist: plotlymol<1,>=0.2.1
|
|
60
|
+
Provides-Extra: pyscf
|
|
61
|
+
Requires-Dist: pyscf<3,>=2.13.0; extra == "pyscf"
|
|
62
|
+
Requires-Dist: pyscf-properties; extra == "pyscf"
|
|
63
|
+
Provides-Extra: ase
|
|
64
|
+
Requires-Dist: ase<4,>=3.22.0; extra == "ase"
|
|
65
|
+
Provides-Extra: app
|
|
66
|
+
Requires-Dist: voila<0.6,>=0.5.0; extra == "app"
|
|
67
|
+
Requires-Dist: ipykernel<8,>=6.0.0; extra == "app"
|
|
68
|
+
Provides-Extra: gpu-cuda12x
|
|
69
|
+
Requires-Dist: gpu4pyscf-cuda12x; extra == "gpu-cuda12x"
|
|
70
|
+
Requires-Dist: cupy-cuda12x; extra == "gpu-cuda12x"
|
|
71
|
+
Requires-Dist: cutensor-cu12; extra == "gpu-cuda12x"
|
|
72
|
+
Provides-Extra: gpu-cuda13x
|
|
73
|
+
Requires-Dist: gpu4pyscf-cuda13x; extra == "gpu-cuda13x"
|
|
74
|
+
Requires-Dist: cupy-cuda13x; extra == "gpu-cuda13x"
|
|
75
|
+
Requires-Dist: cutensor-cu13; extra == "gpu-cuda13x"
|
|
76
|
+
Provides-Extra: notebook
|
|
77
|
+
Requires-Dist: nbmake>=1.4.0; extra == "notebook"
|
|
78
|
+
Requires-Dist: ipykernel<8,>=6.0.0; extra == "notebook"
|
|
79
|
+
Provides-Extra: dev
|
|
80
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
81
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
82
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == "dev"
|
|
83
|
+
Requires-Dist: pytest-xdist>=3.0.0; extra == "dev"
|
|
84
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
85
|
+
Requires-Dist: types-requests>=2.28.0; extra == "dev"
|
|
86
|
+
Requires-Dist: black~=26.5.1; python_version >= "3.10" and extra == "dev"
|
|
87
|
+
Requires-Dist: black~=25.11.0; python_version < "3.10" and extra == "dev"
|
|
88
|
+
Requires-Dist: ruff~=0.16.0; extra == "dev"
|
|
89
|
+
Requires-Dist: pre-commit>=3.7.0; extra == "dev"
|
|
90
|
+
Dynamic: license-file
|
|
91
|
+
|
|
92
|
+
# QuantUI
|
|
93
|
+
|
|
94
|
+
[](https://pypi.org/project/quantui/)
|
|
95
|
+
[](https://github.com/The-Schultz-Lab/QuantUI/actions/workflows/ci.yml)
|
|
96
|
+
[](https://the-schultz-lab.github.io/QuantUI/)
|
|
97
|
+
[](https://github.com/The-Schultz-Lab/QuantUI/blob/main/LICENSE)
|
|
98
|
+
[](https://www.python.org)
|
|
99
|
+
|
|
100
|
+
A powerful open-source frontend for DFT and post-HF quantum chemistry.
|
|
101
|
+
QuantUI puts [PySCF](https://pyscf.org) behind an interactive Jupyter/Voilà
|
|
102
|
+
UI so you can build molecules, run calculations locally, and visualize the
|
|
103
|
+
results — no cluster account, no SLURM, no queueing.
|
|
104
|
+
|
|
105
|
+
Developed by the
|
|
106
|
+
[Schultz Lab, North Carolina Central University](https://github.com/The-Schultz-Lab)
|
|
107
|
+
as an open alternative to closed-source GUI workflows. Equally suitable for
|
|
108
|
+
research and classroom use.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## What it does
|
|
113
|
+
|
|
114
|
+
- **Molecule input** — paste XYZ coordinates, browse an indexed three-tier
|
|
115
|
+
bundled library (20 presets + 156 curated molecules + ~1,900 QM9 structures,
|
|
116
|
+
searchable by name/formula), or run a structure search by name, SMILES,
|
|
117
|
+
InChI, PubChem CID, InChIKey, or CAS number (PubChem → NCI CACTUS → offline
|
|
118
|
+
bundled-library fallback; SMILES/InChI resolve locally with no network)
|
|
119
|
+
- **Offline-first** — runs with no internet: the bundled molecule library and
|
|
120
|
+
the 3D viewer's JavaScript (3Dmol.js) are vendored, so structure lookup and
|
|
121
|
+
every 3D view work in an air-gapped classroom. (Network is used only for the
|
|
122
|
+
optional live PubChem/CACTUS search.)
|
|
123
|
+
- **3D visualization** — interactive py3Dmol viewer (py3Dmol-first; optional
|
|
124
|
+
plotlymol3d fallback for non-trajectory tasks). A capability-aware backend
|
|
125
|
+
router picks the right renderer per task, and a Status-tab toggle persists
|
|
126
|
+
your default-backend preference between sessions
|
|
127
|
+
- **In-session calculations** — RHF, UHF, 9 DFT functionals, MP2, CCSD,
|
|
128
|
+
CCSD(T), NMR shielding, TD-DFT UV-Vis, and 1D PES scans via PySCF, running
|
|
129
|
+
in your Python kernel (no batch submission)
|
|
130
|
+
- **Implicit solvent** — PCM solvation (Water, Ethanol, THF, DMSO,
|
|
131
|
+
Acetonitrile) via a single checkbox
|
|
132
|
+
- **Rich results** — total energy, HOMO-LUMO gap, Mulliken charges, dipole
|
|
133
|
+
moment, thermochemistry (H, S, G at 298 K), IR spectrum chart (stick and
|
|
134
|
+
Lorentzian-broadened), ¹H/¹³C NMR chemical shifts, orbital energy-level
|
|
135
|
+
diagram, HOMO/LUMO isosurface (cube-file rendering with toggle for HOMO-1,
|
|
136
|
+
HOMO, LUMO, LUMO+1), and a side-by-side comparison table for multiple
|
|
137
|
+
calculations
|
|
138
|
+
- **Geometry optimization** — BFGS optimizer with step-by-step trajectory
|
|
139
|
+
animation; vibrational frequency analysis with animated normal modes,
|
|
140
|
+
user-tunable playback FPS, and a per-result-directory disk cache so mode
|
|
141
|
+
switches on repeat visits and history replay are instant
|
|
142
|
+
- **Results persistence** — every calculation is saved automatically to a
|
|
143
|
+
timestamped directory; a built-in browser lets you reload past results
|
|
144
|
+
after a kernel restart; the full `pyscf.log` is shown inline
|
|
145
|
+
- **Structure exports** — download XYZ, MOL/SDF, or PDB files alongside the
|
|
146
|
+
saved results; script export for a standalone `.py` file
|
|
147
|
+
- **Plot export** — save IR, UV-Vis, PES, and orbital diagrams as standalone
|
|
148
|
+
HTML
|
|
149
|
+
- **Optional GPU acceleration** — when [gpu4pyscf](https://github.com/pyscf/gpu4pyscf)
|
|
150
|
+
and a CUDA-capable NVIDIA GPU are present, SCF calculations auto-offload
|
|
151
|
+
via `mf.to_gpu()` (RHF / UHF / RKS / UKS supported; CCSD(T) stays on CPU).
|
|
152
|
+
The Status tab + every result card show which compute device was used.
|
|
153
|
+
Set `QUANTUI_DISABLE_GPU=1` to force CPU even when the GPU is available.
|
|
154
|
+
- **Timing calibration** — one-click benchmark suite populates the time
|
|
155
|
+
estimator with real machine data so predictions are accurate from the first run
|
|
156
|
+
- **Voilà app mode** — serve the notebook as a polished widget-only UI (no
|
|
157
|
+
code visible), with Light/Dark themes, a dedicated output log, and an
|
|
158
|
+
in-app bug-report form
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Platform requirements
|
|
163
|
+
|
|
164
|
+
| Platform | Works? | Notes |
|
|
165
|
+
| --- | --- | --- |
|
|
166
|
+
| Linux / macOS | Full | PySCF installs natively |
|
|
167
|
+
| WSL (Windows) | Full | Use an Ubuntu WSL environment |
|
|
168
|
+
| Windows (native) | Partial | All UI and visualization features work; PySCF calculations require the Apptainer container |
|
|
169
|
+
|
|
170
|
+
### Windows users: Apptainer container
|
|
171
|
+
|
|
172
|
+
PySCF does not install on Windows natively. The
|
|
173
|
+
[`apptainer/quantui.def`](https://github.com/The-Schultz-Lab/QuantUI/blob/main/apptainer/quantui.def) container bundles
|
|
174
|
+
the complete environment and runs anywhere Apptainer/Singularity is available.
|
|
175
|
+
See [`apptainer/README.md`](https://github.com/The-Schultz-Lab/QuantUI/blob/main/apptainer/README.md) for build and run instructions.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Installation
|
|
180
|
+
|
|
181
|
+
### Option A — conda (recommended for Linux/macOS/WSL)
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# Create a dedicated environment
|
|
185
|
+
conda create -n quantui python=3.11
|
|
186
|
+
conda activate quantui
|
|
187
|
+
|
|
188
|
+
# Install with PySCF and ASE
|
|
189
|
+
pip install -e ".[pyscf,ase,app]"
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Option B — pip only
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
python -m pip install quantui[pyscf,ase,app]
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Option C — Apptainer container (Windows / reproducible deployment)
|
|
199
|
+
|
|
200
|
+
See [apptainer/README.md](https://github.com/The-Schultz-Lab/QuantUI/blob/main/apptainer/README.md).
|
|
201
|
+
|
|
202
|
+
### Optional: GPU acceleration (NVIDIA + Linux / WSL)
|
|
203
|
+
|
|
204
|
+
If you have an NVIDIA GPU, QuantUI can offload SCF calculations to it
|
|
205
|
+
through [gpu4pyscf](https://github.com/pyscf/gpu4pyscf). This is **fully
|
|
206
|
+
optional** — without these packages QuantUI runs on CPU exactly as
|
|
207
|
+
before, and you can re-disable GPU at any time with
|
|
208
|
+
`export QUANTUI_DISABLE_GPU=1`.
|
|
209
|
+
|
|
210
|
+
**Step 1 — check your CUDA driver version:**
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
nvidia-smi # "CUDA Version: 13.x" or "CUDA Version: 12.x" in the top-right
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
> The `CUDA Version` field reports your **driver's** maximum supported
|
|
217
|
+
> runtime. You do **not** need to install the CUDA Toolkit — the wheels
|
|
218
|
+
> below bundle their own runtime libraries.
|
|
219
|
+
|
|
220
|
+
**Step 2 — install the CUDA-suffixed wheels matching your driver:**
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
# CUDA 13.x driver
|
|
224
|
+
pip install gpu4pyscf-cuda13x cupy-cuda13x cutensor-cu13
|
|
225
|
+
|
|
226
|
+
# CUDA 12.x driver
|
|
227
|
+
pip install gpu4pyscf-cuda12x cupy-cuda12x cutensor-cu12
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
> ⚠ **Do not** `pip install gpu4pyscf` or `pip install cupy` (without a
|
|
231
|
+
> CUDA suffix). Those are source distributions that try to compile
|
|
232
|
+
> against your local CUDA toolkit and will fail with
|
|
233
|
+
> `FileNotFoundError: 'nvcc'` on any machine without the full toolkit
|
|
234
|
+
> installed. The CUDA-suffixed wheels (`-cuda12x`, `-cuda13x`) are
|
|
235
|
+
> prebuilt binaries — no `nvcc`, no compilation, no toolkit required.
|
|
236
|
+
|
|
237
|
+
**Step 3 — verify the install:**
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
python -c "import gpu4pyscf, cupy; print('GPUs:', cupy.cuda.runtime.getDeviceCount())"
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Should print `GPUs: 1` (or more). Once verified, launch QuantUI as usual
|
|
244
|
+
— the Status tab will show "GPU offload: active (NVIDIA {device-name})"
|
|
245
|
+
and result cards will display the compute device.
|
|
246
|
+
|
|
247
|
+
**Method coverage** (per the gpu4pyscf docs):
|
|
248
|
+
|
|
249
|
+
| Method | GPU offload |
|
|
250
|
+
| --- | --- |
|
|
251
|
+
| RHF, UHF, RKS, UKS (any DFT functional), TD-DFT | Yes |
|
|
252
|
+
| MP2, CCSD | Experimental on GPU (auto-offload) |
|
|
253
|
+
| CCSD(T) | CPU only (gpu4pyscf doesn't support GPU triples; QuantUI's dispatcher detects this and skips) |
|
|
254
|
+
|
|
255
|
+
Whenever gpu4pyscf can't offload a particular call, QuantUI falls back
|
|
256
|
+
to CPU automatically and the result card reflects which device ran.
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Quick start
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# Activate your environment
|
|
264
|
+
conda activate quantui
|
|
265
|
+
|
|
266
|
+
# JupyterLab (full IDE — shows code)
|
|
267
|
+
jupyter lab notebooks/molecule_computations.ipynb
|
|
268
|
+
|
|
269
|
+
# Voilà app mode (widget-only UI — code hidden)
|
|
270
|
+
voila notebooks/molecule_computations.ipynb
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Open the notebook, pick a molecule, choose a method and basis set, and click
|
|
274
|
+
**Run Calculation**. Results appear directly in the notebook.
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Launching QuantUI as an app
|
|
279
|
+
|
|
280
|
+
For the smoothest day-to-day experience, QuantUI ships two double-clickable
|
|
281
|
+
launchers that activate the right conda environment, install the editable
|
|
282
|
+
package on first run (and only re-install when `pyproject.toml` actually
|
|
283
|
+
changes), clear any stale bytecode, start Voilà on port `8867`, and open the
|
|
284
|
+
app in your default browser. Edits to `quantui/*.py` are picked up live with
|
|
285
|
+
no rebuild.
|
|
286
|
+
|
|
287
|
+
| Platform | File | Action |
|
|
288
|
+
| --- | --- | --- |
|
|
289
|
+
| Windows | [`launchers/launch-native.bat`](https://github.com/The-Schultz-Lab/QuantUI/blob/main/launchers/launch-native.bat) | Activates the `quantui` conda env inside WSL Ubuntu, runs Voilà, and opens `http://localhost:8867` |
|
|
290
|
+
| macOS | [`launchers/launch-native.command`](https://github.com/The-Schultz-Lab/QuantUI/blob/main/launchers/launch-native.command) | Activates the local `quantui` conda env directly (no WSL needed) and does the same |
|
|
291
|
+
| Linux / WSL | [`launchers/launch-native.sh`](https://github.com/The-Schultz-Lab/QuantUI/blob/main/launchers/launch-native.sh) | Run `./launchers/launch-native.sh` from a Linux or WSL terminal; activates `quantui` and does the same |
|
|
292
|
+
|
|
293
|
+
All launchers reuse port `8867`, so you can keep the same browser tab pinned
|
|
294
|
+
across platforms. They **auto-detect your conda installation** — miniforge
|
|
295
|
+
(recommended), miniconda, or anaconda, in your home directory or a system
|
|
296
|
+
prefix — so no path editing is needed regardless of which you installed.
|
|
297
|
+
|
|
298
|
+
> **WSL users — clone into the Linux filesystem, not `/mnt/c`.** Running
|
|
299
|
+
> `pip install -e .` (or the launchers) against a repo on the Windows drive
|
|
300
|
+
> (`/mnt/c/...`) fails with `error: [Errno 1] Operation not permitted` because
|
|
301
|
+
> the 9P bridge WSL uses for Windows files doesn't support the file operations
|
|
302
|
+
> an editable build needs — and it's ~10× slower besides. Clone the repo into
|
|
303
|
+
> your WSL home instead and work from there:
|
|
304
|
+
>
|
|
305
|
+
> ```bash
|
|
306
|
+
> git clone https://github.com/The-Schultz-Lab/QuantUI.git ~/GitHub/QuantUI
|
|
307
|
+
> cd ~/GitHub/QuantUI
|
|
308
|
+
> ```
|
|
309
|
+
>
|
|
310
|
+
> Then open it in VS Code with `code .` (installs the WSL server and reopens
|
|
311
|
+
> the window connected to WSL). `launchers/launch-native.sh` resolves its own
|
|
312
|
+
> location, so it works from any clone path.
|
|
313
|
+
|
|
314
|
+
### Windows — pin to the Start menu
|
|
315
|
+
|
|
316
|
+
1. Right-click [`launchers/launch-native.bat`](https://github.com/The-Schultz-Lab/QuantUI/blob/main/launchers/launch-native.bat) in
|
|
317
|
+
File Explorer → **Send to** → **Desktop (create shortcut)**.
|
|
318
|
+
2. Rename the shortcut to something friendly like `QuantUI`.
|
|
319
|
+
3. *(Optional)* Right-click the shortcut → **Properties** → **Change Icon...**
|
|
320
|
+
and point at `docs\logo.ico` for a proper app icon.
|
|
321
|
+
4. Move the shortcut into your Start-menu folder so it appears with normal
|
|
322
|
+
apps. Either:
|
|
323
|
+
- press `Win+R`, paste
|
|
324
|
+
`%APPDATA%\Microsoft\Windows\Start Menu\Programs`, and drop the
|
|
325
|
+
shortcut there *(per-user — recommended)*; or
|
|
326
|
+
- paste `%ProgramData%\Microsoft\Windows\Start Menu\Programs` for an
|
|
327
|
+
all-users install.
|
|
328
|
+
5. Open the Start menu, find **QuantUI**, right-click it, and choose
|
|
329
|
+
**Pin to Start** (or **Pin to taskbar**).
|
|
330
|
+
|
|
331
|
+
You now launch QuantUI like any other Windows app — one click and Voilà opens
|
|
332
|
+
in your browser.
|
|
333
|
+
|
|
334
|
+
### macOS — pin to the Dock / Launchpad
|
|
335
|
+
|
|
336
|
+
**Quickest:** double-click
|
|
337
|
+
[`launchers/launch-native.command`](https://github.com/The-Schultz-Lab/QuantUI/blob/main/launchers/launch-native.command)
|
|
338
|
+
from Finder. macOS will open Terminal, run the script, and pop the app open
|
|
339
|
+
in your browser. The first launch is gated by Gatekeeper: right-click the
|
|
340
|
+
file → **Open** → **Open** to clear it (one time only).
|
|
341
|
+
|
|
342
|
+
**App-like experience (recommended):** wrap the launcher in a tiny Automator
|
|
343
|
+
application so it lives in Launchpad and pins to the Dock.
|
|
344
|
+
|
|
345
|
+
1. Open **Automator** (Spotlight → "Automator") → **New Document** →
|
|
346
|
+
**Application**.
|
|
347
|
+
2. In the actions library on the left, find **Run Shell Script** and drag it
|
|
348
|
+
into the workflow pane on the right.
|
|
349
|
+
3. Set **Shell** to `/bin/bash` and **Pass input** to **as arguments**, then
|
|
350
|
+
replace the script body with the single line below (adjust the path if
|
|
351
|
+
your clone lives elsewhere):
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
"$HOME/path/to/QuantUI/launchers/launch-native.command"
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
4. **File → Save** → name it `QuantUI` → save into `/Applications`.
|
|
358
|
+
5. *(Optional)* Set a custom icon: in Finder, open `docs/logo.svg` in
|
|
359
|
+
**Preview**, **Edit → Select All → Copy**, then in Finder select the
|
|
360
|
+
new `QuantUI.app`, **File → Get Info**, click the small icon in the
|
|
361
|
+
top-left of the Info window, and **Edit → Paste**.
|
|
362
|
+
6. Open Launchpad, find **QuantUI**, drag it into the Dock to pin it.
|
|
363
|
+
|
|
364
|
+
You now have a real `.app` you can launch from Spotlight, Launchpad, or the
|
|
365
|
+
Dock — it just runs the `.command` script under the hood, so any
|
|
366
|
+
`quantui/*.py` edits take effect immediately on the next launch.
|
|
367
|
+
|
|
368
|
+
> **Linux users:** the same `launchers/launch-native.command` script works from
|
|
369
|
+
> a terminal — `./launchers/launch-native.command`. To wire it into your desktop
|
|
370
|
+
> environment as a pinned app, create a `.desktop` entry pointing at the
|
|
371
|
+
> script.
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## Command-line toolkit
|
|
376
|
+
|
|
377
|
+
QuantUI ships a small CLI for inspecting state and generating reports
|
|
378
|
+
from outside the notebook — useful for verifying GPU offload before a
|
|
379
|
+
long run, tailing the event log, and building a usage / speedup
|
|
380
|
+
dashboard. After installation:
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
quantui log tail -n 50 # last 50 events from event_log.jsonl
|
|
384
|
+
quantui gpu check # is GPU offload available right now?
|
|
385
|
+
quantui analytics build --open # build dashboard.html + open in browser
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
Full reference with all flags and examples: [docs/CLI.md](https://github.com/The-Schultz-Lab/QuantUI/blob/main/docs/CLI.md).
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## Using QuantUI results in other tools
|
|
393
|
+
|
|
394
|
+
QuantUI's M-EXPORT milestone writes portable companion files alongside
|
|
395
|
+
every result so you can hand-off to Avogadro, IQmol, Jmol, VMD, ASE-GUI,
|
|
396
|
+
or any spreadsheet without screen-scraping. The quick reference:
|
|
397
|
+
|
|
398
|
+
| Goal | QuantUI file | Tool |
|
|
399
|
+
| --- | --- | --- |
|
|
400
|
+
| MOs in 3D, vibrations | `result.molden` | Avogadro 2, IQmol, Jmol |
|
|
401
|
+
| Geometry-opt / PES replay | `trajectory.xyz` or `.traj` | VMD, Avogadro, ASE-GUI |
|
|
402
|
+
| Orbital isosurface | `isosurfaces/<orb>.cube` | Avogadro, VMD, ChimeraX |
|
|
403
|
+
| Spectrum data in Excel | `*_data_*.csv` | Excel, LibreOffice, pandas |
|
|
404
|
+
| Share whole result | `<result>.zip` (Export bundle) | Any unzip tool |
|
|
405
|
+
|
|
406
|
+
Full per-tool walkthrough with troubleshooting: [docs/IMPORTING-INTO-AVOGADRO.md](https://github.com/The-Schultz-Lab/QuantUI/blob/main/docs/IMPORTING-INTO-AVOGADRO.md).
|
|
407
|
+
|
|
408
|
+
---
|
|
409
|
+
|
|
410
|
+
## Tutorials
|
|
411
|
+
|
|
412
|
+
Five step-by-step notebooks in [`notebooks/tutorials/`](https://github.com/The-Schultz-Lab/QuantUI/tree/main/notebooks/tutorials/):
|
|
413
|
+
|
|
414
|
+
| Notebook | Topic |
|
|
415
|
+
| --- | --- |
|
|
416
|
+
| [01_first_calculation.ipynb](https://github.com/The-Schultz-Lab/QuantUI/blob/main/notebooks/tutorials/01_first_calculation.ipynb) | Your first RHF calculation |
|
|
417
|
+
| [02_basis_set_study.ipynb](https://github.com/The-Schultz-Lab/QuantUI/blob/main/notebooks/tutorials/02_basis_set_study.ipynb) | Comparing STO-3G, 6-31G, cc-pVDZ |
|
|
418
|
+
| [03_multiplicity_radicals.ipynb](https://github.com/The-Schultz-Lab/QuantUI/blob/main/notebooks/tutorials/03_multiplicity_radicals.ipynb) | Open-shell molecules and UHF |
|
|
419
|
+
| [04_charged_species.ipynb](https://github.com/The-Schultz-Lab/QuantUI/blob/main/notebooks/tutorials/04_charged_species.ipynb) | Ions and charged systems |
|
|
420
|
+
| [05_comparing_results.ipynb](https://github.com/The-Schultz-Lab/QuantUI/blob/main/notebooks/tutorials/05_comparing_results.ipynb) | Side-by-side result analysis |
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
## Supported calculations
|
|
425
|
+
|
|
426
|
+
### Methods
|
|
427
|
+
|
|
428
|
+
| Method | Type | Best for |
|
|
429
|
+
| --- | --- | --- |
|
|
430
|
+
| RHF | Hartree-Fock | Closed-shell molecules; baseline reference |
|
|
431
|
+
| UHF | Hartree-Fock | Radicals and open-shell systems |
|
|
432
|
+
| B3LYP | DFT hybrid | General organic chemistry (default DFT choice) |
|
|
433
|
+
| PBE | DFT GGA | Large molecules; metals; when speed matters |
|
|
434
|
+
| PBE0 | DFT hybrid | Charge-transfer, band gaps |
|
|
435
|
+
| M06-2X | DFT meta-hybrid | Thermochemistry, barrier heights |
|
|
436
|
+
| wB97X-D | DFT range-sep. + D3 | Non-covalent interactions, excited states |
|
|
437
|
+
| CAM-B3LYP | DFT range-sep. | Charge-transfer UV-Vis, Rydberg states |
|
|
438
|
+
| M06-L | DFT local meta-GGA | Large molecules; transition metals |
|
|
439
|
+
| HSE06 | DFT screened hybrid | Band gaps, large molecules |
|
|
440
|
+
| PBE-D3 | DFT GGA + dispersion | Van der Waals complexes, stacking |
|
|
441
|
+
| MP2 | Post-HF | Accurate energetics for small molecules (O(N⁵)) |
|
|
442
|
+
| CCSD | Post-HF coupled cluster | High-accuracy small-molecule energies (O(N⁶)) |
|
|
443
|
+
| CCSD(T) | Post-HF coupled cluster | Benchmark "gold standard" energies (O(N⁷); CPU only) |
|
|
444
|
+
|
|
445
|
+
### Calculation types
|
|
446
|
+
|
|
447
|
+
| Type | Output |
|
|
448
|
+
| --- | --- |
|
|
449
|
+
| Single Point | Energy, HOMO-LUMO gap, Mulliken charges, dipole moment |
|
|
450
|
+
| Geometry Opt | Optimised structure, trajectory animation |
|
|
451
|
+
| Frequency | Vibrational frequencies, ZPVE, IR intensities, thermochemistry (H/S/G at 298 K), animated normal modes, IR spectrum chart (stick / Lorentzian broadened) |
|
|
452
|
+
| UV-Vis (TD-DFT) | Excitation energies, oscillator strengths, UV-Vis spectrum plot |
|
|
453
|
+
| NMR Shielding | ¹H and ¹³C chemical shifts relative to TMS via GIAO; tabulated by element |
|
|
454
|
+
| PES Scan | 1D potential energy surface along a bond, angle, or dihedral; energy profile chart; geometry animation at each scan point |
|
|
455
|
+
|
|
456
|
+
### Basis sets
|
|
457
|
+
|
|
458
|
+
STO-3G (fast, good for learning) → 3-21G → 6-31G / 6-31G\* / 6-31G\*\* →
|
|
459
|
+
cc-pVDZ / cc-pVTZ → def2-SVP / def2-TZVP
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
## Running tests
|
|
464
|
+
|
|
465
|
+
```bash
|
|
466
|
+
pip install -e ".[dev]"
|
|
467
|
+
|
|
468
|
+
# All tests (Linux/macOS — PySCF available)
|
|
469
|
+
pytest -m "not network"
|
|
470
|
+
|
|
471
|
+
# Skip PySCF-dependent tests (Windows without container)
|
|
472
|
+
pytest -m "not network" \
|
|
473
|
+
--ignore=tests/test_session_calc.py \
|
|
474
|
+
--ignore=tests/test_optimizer.py \
|
|
475
|
+
--ignore=tests/test_preopt.py
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
## Project structure
|
|
481
|
+
|
|
482
|
+
```text
|
|
483
|
+
quantui/ Main package
|
|
484
|
+
app.py QuantUIApp — widget orchestration, run dispatch
|
|
485
|
+
app_analysis.py Analysis-tab panel registry + _pop_* methods
|
|
486
|
+
app_builders.py _build_* widget construction
|
|
487
|
+
app_runflow.py _do_run + run/orchestration UI handlers
|
|
488
|
+
app_visualization.py Trajectory / vib / IR / orbital / PES rendering
|
|
489
|
+
app_history.py History tab loaders, replay context
|
|
490
|
+
app_formatters.py Result-card and text formatters
|
|
491
|
+
app_exports.py Export handlers (XYZ/MOL/PDB/script)
|
|
492
|
+
molecule.py Molecule input and validation
|
|
493
|
+
session_calc.py In-session PySCF runner (RHF/UHF/DFT/MP2/PCM)
|
|
494
|
+
freq_calc.py Vibrational frequency + thermochemistry
|
|
495
|
+
ir_plot.py IR spectrum chart (stick / Lorentzian broadened)
|
|
496
|
+
tddft_calc.py TD-DFT UV-Vis excited-state calculations
|
|
497
|
+
nmr_calc.py NMR shielding + ¹H/¹³C chemical shifts
|
|
498
|
+
pes_scan.py 1D potential energy surface scan
|
|
499
|
+
optimizer.py QM geometry optimization with trajectory
|
|
500
|
+
visualization_py3dmol.py 3D viewer (py3Dmol-first; plotlymol fallback)
|
|
501
|
+
viz_backend_router.py Capability-aware backend router (pure function)
|
|
502
|
+
viz_assets.py Offline-safe 3Dmol.js loading (vendored, no CDN)
|
|
503
|
+
user_settings.py Persistent user preferences (~/.quantui/settings.json)
|
|
504
|
+
vib_cache.py On-disk cache of rendered vib-mode HTML
|
|
505
|
+
orbital_visualization.py Orbital energy diagrams + cube-file viewer
|
|
506
|
+
pubchem.py Structure search client (PubChem + RDKit)
|
|
507
|
+
cactus.py NCI CACTUS resolver (fallback structure source)
|
|
508
|
+
structure_providers.py Unified resolver chain with offline fallback
|
|
509
|
+
molecule_library.py Indexed 3-tier bundled molecule library
|
|
510
|
+
comparison.py Side-by-side result tables
|
|
511
|
+
results_storage.py Timestamped result persistence (schema v2)
|
|
512
|
+
calc_log.py Performance + event logging, time estimation
|
|
513
|
+
issue_tracker.py In-app bug-report DB
|
|
514
|
+
benchmarks.py Timing calibration benchmark suite
|
|
515
|
+
config.py Methods, basis sets, solvent/NMR options, presets
|
|
516
|
+
ase_bridge.py ASE structure I/O
|
|
517
|
+
preopt.py RDKit MMFF94/UFF force-field pre-optimization
|
|
518
|
+
data/ Bundled library (SQLite + manifests) + vendored 3Dmol.js
|
|
519
|
+
notebooks/
|
|
520
|
+
molecule_computations.ipynb Main user-facing interface (3-cell launcher)
|
|
521
|
+
tutorials/ Step-by-step guided notebooks (01–05)
|
|
522
|
+
tests/ pytest test suite (~1500 tests; run in parallel via pytest-xdist)
|
|
523
|
+
apptainer/ Container definition for reproducible deployment
|
|
524
|
+
local-setup/ Conda environment definition
|
|
525
|
+
pyproject.toml Package metadata and tool config
|
|
526
|
+
CHANGELOG.md Release history (Keep a Changelog format)
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
---
|
|
530
|
+
|
|
531
|
+
## License
|
|
532
|
+
|
|
533
|
+
[MIT](https://github.com/The-Schultz-Lab/QuantUI/blob/main/LICENSE) — Copyright 2026 The Schultz Lab, North Carolina Central University
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
quantui/__init__.py,sha256=OofYGZrrY8z41EUNLR65LNE5dAPDD_xeom9Z-TknknY,8319
|
|
2
|
+
quantui/analytics.py,sha256=ddIU-NsD3VR6MoJ37a_TtwlB-dZ_EP9D71OuLM-4aMk,22280
|
|
3
|
+
quantui/app.py,sha256=dR9AwiOGoVcIbZzUh2zEjLl2yFr9PkJRl3AB46bnPRw,236247
|
|
4
|
+
quantui/app_analysis.py,sha256=MCnv8J5HIZ82PjopijZWWBGwZzOs58FxWeYhrdHrt6Y,24646
|
|
5
|
+
quantui/app_builders.py,sha256=IWpjGc80kvA4xGCv9Ga0-IdVE1FPCXoIPcgVCdvgJ-w,93807
|
|
6
|
+
quantui/app_exports.py,sha256=yS7W8JKZzNI4XwIeTjdxyyhDDSkC7FwM6CNWFzIxW5I,7362
|
|
7
|
+
quantui/app_formatters.py,sha256=5F3H8DbQFy7824faZm4oKsT8I_1nEZAQIjbe2LbvBFU,21369
|
|
8
|
+
quantui/app_history.py,sha256=TVEpM-Xv_xdckzhMyjGwC0OWEuwsfY5CpBQXH2f63Bo,23789
|
|
9
|
+
quantui/app_runflow.py,sha256=nd_JcqK7-4jnChuZPmkIpAShGnIpxGel4B1q273Hir0,60505
|
|
10
|
+
quantui/app_visualization.py,sha256=ZqYZ4CQodDo5TEeihhSXAZO07sxoeZOTunVvEU60H9Q,94452
|
|
11
|
+
quantui/ase_bridge.py,sha256=dvvM-aqbe9SAGOE_bwtaK_xcS4cwbMfttct37LLggsI,7502
|
|
12
|
+
quantui/benchmarks.py,sha256=dm7FhyY-Q1dUBnPJqzd9eTuMVOaqW8Zxx66nROq3FAg,54104
|
|
13
|
+
quantui/c_stderr.py,sha256=0h4WHTDe4P0pVysh_FjKbEiRps5NDXTa1scaCRwwiRA,4607
|
|
14
|
+
quantui/cactus.py,sha256=PaSl0fprwIJyj41i283z_eYfDClJiLCakpvhu1zoB1g,3406
|
|
15
|
+
quantui/calc_log.py,sha256=IAuwZfcq9CFnGl2ec1N43EG4-mGL-kBzyfrQv4kJwjI,37228
|
|
16
|
+
quantui/calculator.py,sha256=gXzU2cwM0f2Jevlfqauj1LbohHpHL4Vp5_L8XudzeWg,7082
|
|
17
|
+
quantui/cancellation.py,sha256=3F0yXAkoYMEC0cv3PBhboObfsCcXKv_MJv4D8DNJ2CY,3539
|
|
18
|
+
quantui/cli.py,sha256=-7qQNWhdxZ6q-m0FXOAXYnzZdEV7UhDtkiKdAJBFvxc,10463
|
|
19
|
+
quantui/comparison.py,sha256=eQgMlUVA3BQNZlYm4pyXNBoACQr51aKNJKEn4Bu80js,10258
|
|
20
|
+
quantui/config.py,sha256=YxWLsVg_tyqwy0GIM_7KoN_qeYXoMHHqtKoB_cAlTzE,25299
|
|
21
|
+
quantui/descriptor_cards.py,sha256=COjkL6tXaoK5hrClBMtqJ2nyQR2QW-IR2bdXku5WHBk,7499
|
|
22
|
+
quantui/freq_calc.py,sha256=FwzZWD8FcUusZ4TuOG0cyUv_SWnGhA95Q2GzI7HI69o,31472
|
|
23
|
+
quantui/freq_ir_workers.py,sha256=j8wKJahoj-c9qqsaLK5fk5JIHCYkm1yPt9BfbH8dZuE,8850
|
|
24
|
+
quantui/gpu_offload.py,sha256=NesDICXsrLP5U9egm75RYSonqNEVDHDg6WsMSdKwGZU,12119
|
|
25
|
+
quantui/help_content.py,sha256=cwViWuXNCkwoTJVXbuxNe-tXZg4kzEANIw99phkZ3ok,27200
|
|
26
|
+
quantui/ir_plot.py,sha256=htkMrlQ5WEcHeoL3FCeEBUAqMKeNel5I8FdtXyzUkD0,4180
|
|
27
|
+
quantui/issue_tracker.py,sha256=6i4YIZMhVO77ySc5w4OFjYzWVnCdPJKwlXEKOw779W4,4905
|
|
28
|
+
quantui/live_log.py,sha256=gxXLJ9LjXUPvFvVcQ32f0QG2PKFeznACrBytvA-2ho8,15791
|
|
29
|
+
quantui/log_utils.py,sha256=NHBJKBJEglBDc0b49MWmtJLfyEudy2SktbZfpENg9Ng,16406
|
|
30
|
+
quantui/molecule.py,sha256=BNcSvDVVcKTh_v-SL3x1Qa8C3bq_BLk10Fixkvvvclk,19442
|
|
31
|
+
quantui/molecule_library.py,sha256=fdk10SLM2jbxaY2n5fYYOJVLgngnwORaGJXFIP9kxNw,15729
|
|
32
|
+
quantui/nmr_calc.py,sha256=grqeqSxmCIy0fMczfJ2baTCcM8jXE1OUTEwdN8rwJ4o,17181
|
|
33
|
+
quantui/optimizer.py,sha256=ubqMP-S_z1sjyzrAfTyQdR6zR2THyY9keP9QwwjfS5E,26433
|
|
34
|
+
quantui/orbital_visualization.py,sha256=8tv6YVwb7d0wDyrCt_12nZ1uHABPQKjy5GUkNnra5l8,33285
|
|
35
|
+
quantui/pes_scan.py,sha256=50xub7eUHEtRzSrq5DeJM-wA6qBG9H0JyIfw-2tu3zg,16777
|
|
36
|
+
quantui/preopt.py,sha256=8NNmyNXX3ZaE7A8BFJ0JJxA9WTZgrOxzqWNaZvxlSQU,14122
|
|
37
|
+
quantui/progress.py,sha256=mKf9iXkPabJFCeBff2KtzR4xgU-TuL3myjWAh3pH5FQ,3329
|
|
38
|
+
quantui/pubchem.py,sha256=9yhHtnKAQp1L2zID4bE4-Tgj_MYV4s9nO9-A_C8PU6I,40752
|
|
39
|
+
quantui/reorganization_energy.py,sha256=Yfymvrl4686xJ-4ejLVCVXeUXf86E_wj09XudUU7Awc,16576
|
|
40
|
+
quantui/results_storage.py,sha256=v-PJvSJcRx35LZRtsj8RTGUgd9L10NGlxgeakNN9WLo,31144
|
|
41
|
+
quantui/security.py,sha256=nlNdn7CPMskWddAT1Z7e2XNPec_Ehg8rWqSGyC47zSo,468
|
|
42
|
+
quantui/session_calc.py,sha256=Fvy4K8T2ZYrvhkSJlAUae3Tqv_E_cWDvcnFMTyjyWiw,25281
|
|
43
|
+
quantui/structure_providers.py,sha256=zN_o8q0FBeYVLzFyVpvQmNJpWHPateYxXXdbPoBWQGU,10611
|
|
44
|
+
quantui/tddft_calc.py,sha256=UVvxf1DngpXd_IfhXuQZm1vxzzP-jezuDhBevwWh95g,11305
|
|
45
|
+
quantui/user_settings.py,sha256=GcLKfzoahP9KT91AS94bUbJeYI2kRiHFNev4WvP_La4,8472
|
|
46
|
+
quantui/utils.py,sha256=-ruTrcgFpD9oZryzci9L4FHPc1VjZoGKBG4EKNm3Pyg,7779
|
|
47
|
+
quantui/vib_cache.py,sha256=UFLT8djCVRcWwKsGXmtnsHgxIg6daTAw-ve90aea_wY,7009
|
|
48
|
+
quantui/visualization_py3dmol.py,sha256=ndyFI44acmNJdkLHD24_zMVPQc_4IQ_rAjAjT74gpFg,19834
|
|
49
|
+
quantui/viz_assets.py,sha256=OwTFuzNCB-M28fG8hs8rnAaKHxylbW5vLUlluHohDk0,4319
|
|
50
|
+
quantui/viz_backend_router.py,sha256=VsBkuMrb3cAv-VqQYeZVO9aQnH_iOUQtrojvpmqHPAg,9038
|
|
51
|
+
quantui/data/js/3Dmol-min.js,sha256=eMceGI67LzunyBhCdmGChMmHed9aLCxUMdf3N7uGKVA,526160
|
|
52
|
+
quantui/data/js/3Dmol-min.js.LICENSE.txt,sha256=Fkrt_wYI8KebdP6Wd8BWOPlQgB7j9xFTbe90dit9Gm8,120
|
|
53
|
+
quantui/data/library/library.sqlite,sha256=AtHiA5x61MnFgFXjmtS5T7Q3H7sR4SXx5QVg0oycNv4,876544
|
|
54
|
+
quantui/data/manifests/bulk_qm9.json,sha256=lJ1R0FXmVCScmIVSLoRqpx2JK7WNXfSpg3QR4NWyMWA,1536880
|
|
55
|
+
quantui/data/manifests/curated.json,sha256=jFNXizdRBPPdV0QMoFFtrq1TM1Keft7XlV6dwSecwO8,183906
|
|
56
|
+
quantui/data/manifests/presets.json,sha256=0HcT_b5mj3Eol44ix8YJQRKUMef1ql4ZeMOaNjDRBWk,11272
|
|
57
|
+
quantui-0.5.1.dist-info/licenses/LICENSE,sha256=H1LyHsyZUV-Hf_403Mfhs66YiAuugvEArffTln3aMHE,1107
|
|
58
|
+
quantui-0.5.1.dist-info/METADATA,sha256=dNV8vKqa410tVp7pE4SIj0ic5G01E4UAfzgyypV4_KE,25219
|
|
59
|
+
quantui-0.5.1.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
|
|
60
|
+
quantui-0.5.1.dist-info/entry_points.txt,sha256=u6Eknh5ZWAFUYutda29_OACcldQ5Pti_LJyPYZHPbrI,45
|
|
61
|
+
quantui-0.5.1.dist-info/top_level.txt,sha256=1PjuNdq6RbDdrM9Q5y5k5Lu-UodlzUWjw_bjNXh3-j4,8
|
|
62
|
+
quantui-0.5.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 The Schultz Lab, North Carolina Central University
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
quantui
|